PHP 配列ソート 多次元配列ソート
PHP で最も強力な型は配列です。配列を使用すると、あらゆる種類のデータを保存できます。
配列のソートはプロジェクト開発ではよくあることですが、この記事では主にいくつかの経験と方法、およびそれらの違いを参考までにまとめます。
この関数は、配列の値を整数に変換し、最小値から最大値に並べ替え、元のキー名を削除します。成功した場合は TRUE、失敗した場合は FALSE を返します。
b. asort 関数:この関数は、配列を low から high にソートし、配列の インデックスはユニット に関連付けられたままになります。主に、セルの順序が重要な連想配列の並べ替えに使用されます。 c, arsort 関数: bool
arsort ( array &$array [, int $sort_flags ] )この関数は、配列を逆順 (高位から低位) にソートし、インデックス関係を維持します
ソートの場合、配列インデックス
はセル
に関連付けられたままになります。主に、セルの順序が重要な連想配列の並べ替えに使用されます。成功した場合は TRUE を返し、失敗した場合は FALSE を返します
多次元配列の並べ替え
a. usort 関数: bool
比較関数は、最初の引数が 2 番目の引数より小さい、ゼロ以上であるとみなされる場合、それぞれゼロより小さい、ゼロ以上、またはゼロより大きい整数を返さなければなりません
この関数は新しいキーを割り当てます配列内の要素に名前を付けます。これにより、キーの順序が変更されるだけでなく、
元のキーが削除されます。
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。 b. uasort 関数: bool
uasort (array &$array, callback$cmp_function)
uasort ? array インデックスの関連付けを並べ替えて維持する
この関数は、配列を並べ替え、インデックスとセルの関連付けを維持します
。主に、セルの順序が重要な連想配列の並べ替えに使用されます。比較関数はユーザー定義です。
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。 c, uksort 関数: bool
uksort(array &$array, callback$cmp_function)
この関数は、ユーザーが提供する比較関数を使用して、キー名を比較します。配列のソート。この関数は、並べ替えられる配列を通常とは異なる基準で並べ替える必要がある場合に使用する必要があります。cmp_function 関数は、配列内のキー名のペアが入力される 2 つのパラメーターを受け入れる必要があります。 比較関数は、最初の引数が 2 番目の引数より小さい、等しい、または大きい場合、それぞれゼロ未満、ゼロに等しい、またはゼロより大きい整数を返さなければなりません。
成功した場合は TRUE を返し、失敗した場合は FALSE を返します (このソート方法は uasort と非常に似ています)。 array$... ]]] )
複数の配列を一度に並べ替えたり、特定の次元または複数の次元に従って多次元配列を並べ替えたりするために使用できます。文字列キーの名前は変更されませんが、数値キーの名前は再び変更されます。
この関数のパラメータ構造はやや特殊ですが、非常に柔軟です。
最初のパラメータは配列でなければなりません。次の各引数には、以下にリストされている配列または並べ替えフラグを指定できます。
ソート順序フラグ:?SORT_ASC - 昇順でソート
?SORT_DESC - 降順でソート
ソートタイプフラグ:
?SO RT_REGULAR - 通常の方法で項目を比較します
?SORT_NUMERIC -項目を数値的に比較します
?SORT_STRING - 項目を数値的に比較します。各配列の後に同じタイプの 2 つの並べ替えフラグを指定することはできません。 各配列の後に指定された並べ替えフラグは、その配列に対してのみ有効です。以前はデフォルト値 SORT_ASC と SORT_REGULAR でした。
uasort 学習ケースの並べ替え:
/* 多维数组排序 */$arr_more = array( array(1,'age'=> 12,'name' => 'wzq'), array(2,'age'=> 42,'name' => 'eee'), array(9,'age'=> 82,'name' => '22'), array(4,'age'=> 162,'name' => 'ff'), array(6,'age'=> 2,'name' => 'jj'), array(17,'age'=> 52,'name' => 'nn'));uasort($arr_more,function($x,$y){ //age从大到小 return $x['age'] < $y['age'];});var_dump($arr_more);
この記事は以上です。知識ポイントは PHP 学習マニュアルから取得しています。皆さんのお役に立てれば幸いです!