PHP の 2 次元配列のソート

巴扎黑
リリース: 2016-11-24 13:43:20
オリジナル
1332 人が閲覧しました

PHP自体には多次元配列をソートする機能があります。

bool array_multisort ( array $ar1 [,mixed $arg [,mixed $... [, array $... ]]] )

以下はマニュアルの array_multisort 関数の説明です:

array_multisort () OK 複数の配列を一度に並べ替えたり、1 つ以上の次元に従って多次元配列を並べ替えたりするために使用されます。
関連付けられた (文字列) キー名は変更されませんが、数値キー名は再インデックスされます。
入力配列はテーブルの列として扱われ、行ごとに並べ替えられます。これは SQL の ORDER BY 句の機能と似ています。最初の配列は、ソートされるメインの配列です。配列内の行 (値) が同じであると比較された場合、次の入力配列内の対応する値のサイズに従って並べ替えられます。

マニュアルを見ると、PHP 独自の多次元ソートでは、最初の配列をソートし、その後の順序を調整することがわかります。次のような配列:

array( 'id' => array(1,3,2),

'data'=>array('a','c','b'))

ただID による多次元ソートで十分です。しかし、多くの場合、構築する配列は次のようになります:

array(
array('id'=>1,'data'=>'a'),
array('id'=>3, ' data'=>'c'),
array('id'=>2,'data'=>'b')
);

配列の要素は行に配置されており、並べ替える必要がありますby 列で並べ替えます。 PHP には行列転置のような機能が提供されていないようです。そのため、array_multisort を多次元ソートに直接使用することはできません。ただし、最初にソートされた列を抽出し、それを最初のパラメータとして array_multisort に渡すだけで済みます。

りー


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