ホームページ > バックエンド開発 > PHPチュートリアル > PHP 1次元と2次元配列のキーソート方法例まとめ、2次元配列例_PHPチュートリアル

PHP 1次元と2次元配列のキーソート方法例まとめ、2次元配列例_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:14:18
オリジナル
865 人が閲覧しました

php一次元と二次元配列のキーソート方法例まとめ、二次元配列の例

この記事の例は、PHP の 1 次元および 2 次元配列のキーソート方法をまとめたものです。参考のためにみんなで共有してください。具体的な方法は以下の通りです

PHP における配列のソートは常に一般的な問題であり、PHP における 1 次元配列と 2 次元配列のソートの実装手順に焦点を当ててみましょう。これは誰にとっても一定の参考になると思います。

機能: 配列を並べ替えます。

説明: バブルソート(1次元配列)(特定のキーでソートされた2次元配列)

ペアごとにソートするデータ要素のサイズを比較し、2 つのデータ要素の順序が逆転していることが判明した場合は、逆転したデータ要素がなくなるまでそれらを入れ替えます。

ソートされた配列 R[1..N] が垂直に構築され、各データ要素が重み付けされたバブルとみなされ、その配列が下から上に向かってスキャンされ、「 . 最後の 2 つの気が上部の軽い気と下部の重い気になるまで、このプロセスを繰り返します。


コードをコピーします コードは次のとおりです:/**
* バブルソート(1次元配列)(特定のキーでソートされた2次元配列)
* ペアごとにソートするデータ要素のサイズを比較し、2 つのデータ要素の順序が逆転していることが判明した場合は、逆転したデータ要素がなくなるまで交換します。 * ソートされた配列 R[1..N] が垂直に組み立てられ、各データ要素が重み付けされたバブルとみなされ、その配列が下から上にスキャンされ、原則に違反するものはすべてスキャンされます。これを何度も繰り返してください。
* 2 つの気の終わりまで、軽い方が上にあり、重い方が下にあります。
​*/
関数 bubble_sort($array,$key=null) {
$count = count($array);
if($count false を返す;
}
for($i = 0; $i for($j = $count - 1; $j > $i; $j--) {
If($key && isset($array[$key]))){//二次元配列が存在します
If($array[$j][$key] < $array[$j - 1][$key]) {
$tmp = $array[$j];
$array[$j] = $array[$j - 1];
$array[$j - 1] = $tmp;
}
}else{ //一次元配列
If($array[$j] <$array[$j - 1]) {
$tmp = $array[$j];
$array[$j] = $array[$j - 1];
$array[$j - 1] = $tmp;
}
}
}
}
$array を返す;
}


array_multisort 並べ替えメソッド

array_multisort() array を使用して、指定されたキー値に従って 2 桁の配列をソートする方法

この例では、$data という名前の 2 次元配列が定義され、次のようにソートされます


コードをコピーします

コードは次のとおりです:
$data[] = array('ボリューム' => 67, 'エディション' => 2); $data[] = array('ボリューム' => 86, 'エディション' => 1); $data[] = array('ボリューム' => 85, 'エディション' => 6); $data[] = array('ボリューム' => 98, 'エディション' => 2); $data[] = array('ボリューム' => 86, 'エディション' => 6); $data[] = array('ボリューム' => 67, 'エディション' => 7);
// 列のリストを取得します
foreach ($data as $key => $row) {
$volume[$key] = $row['volume']
$edition[$key] = $row['edition']
; }

// データをボリュームに従って降順に、エディションに従って昇順に並べ替えます
// $data を最後のパラメータとして使用し、共通キーでソートします
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); print_r($data);


実行後の出力結果は以下の通りです。



コードをコピーします
コードは次のとおりです:


配列

( [0] => 配列 ( [ボリューム] => 98 [エディション] => )
[1] => 配列
(
[ボリューム] => 86
[エディション] =&gt; )
[2] => 配列
(
[ボリューム] => 86
[エディション] =>                                             [3] => 配列
(
[ボリューム] => 85
[エディション] => )
[4] => 配列
(
[ボリューム] => 67
[エディション] => )
[5] => 配列
(
[ボリューム] => 67
[エディション] => )
)


1 次元配列をソートするには、sort() を使用するだけで済みます。対応する asort($arr); 関数は、キー値でソートし、元のキーと値の関係を維持します。

rsort(); krsort(); 関数は、ソートが降順である点を除き、同じです。

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。




http://www.bkjia.com/PHPjc/910587.html

www.bkjia.com
本当

http://www.bkjia.com/PHPjc/910587.html

技術記事

PHP 1次元および2次元配列のキーソート方法の例まとめ、2次元配列の例 この記事では、PHPの1次元および2次元配列のキーソート方法の例をまとめています。参考のためにみんなで共有してください。具体的な方法は以下の通りです...

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート