array_multisort
(PHP 4, PHP 5)
array_multisort -- 複数の配列または多次元配列をソートします
説明
bool array_multisort ( array ar1 [,mixed arg [,mixed ... [,array .. .]]] )
成功した場合は TRUE を返し、失敗した場合は FALSE を返します。
array_multisort() を使用すると、複数の配列を一度に並べ替えたり、1 つ以上の次元に従って多次元配列を並べ替えたりできます。
連想 (文字列) キー名は変更されませんが、数値キー名は再インデックスされます。
入力配列はテーブルの列として扱われ、行ごとに並べ替えられます。これは SQL の ORDER BY 句の機能と似ています。最初の配列は、ソートされるメインの配列です。配列内の行 (値) が同じであると比較された場合、次の入力配列内の対応する値のサイズに従って並べ替えられます。
この関数のパラメータ構造はやや特殊ですが、非常に柔軟です。最初のパラメータは配列である必要があります。次の各引数には、以下にリストされている配列または並べ替えフラグを指定できます。
ソート順序フラグ:
SORT_ASC - 項目を昇順でソート
SORT_DESC - 項目を降順でソート
ソートタイプフラグ:
SORT_REGULAR - 項目をソート通常の順序でメソッド比較
SORT_NUMERIC - 数値に基づいて項目を比較
SORT_STRING - 文字列に基づいて項目を比較
各配列の後に 2 つの同様の並べ替えフラグを指定することはできません。各配列の後に指定されたソート フラグは、その配列に対してのみ有効です。その前は、デフォルト値 SORT_ASC および SORT_REGULAR です。
例 1. 複数の配列を並べ替える
コードをコピー コードは次のとおりです:
$ar1 = array("10", 100, 100, "a");
$ar2 = array(1, 3, "2", 1);
var_dump($ar1);
var_dump($ar2);
この例では、最初の配列には「10」が含まれます。 「、100、100。 2 番目の配列には 1,1,"2",3 が含まれます。 2 番目の配列内の項目の順序は、最初の配列内の対応する項目 (100 と 100) の順序とまったく同じです。
コードをコピーします コードは次のとおりです。
array(4) {[0]=> (2) "10"
[1]=> string(1) "a"
[2]=> int(100)
[3]=> int; >}
array(4) {
[0]=> int(1)
[2]=> string(1) " 2"
[3]=> int(3)
}
例 2. 多次元配列のソート
コードは次のとおりです: $ar = array (array ("10", 100, 100, "a"), array (1, 3, "2" , 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,$ar[1], SORT_NUMERIC,
?>); >
this この例でソートすると、最初の配列には 10、100、100、"a" (文字列として昇順でソート) が含まれ、2 番目の配列には 1、3、"2"、1 が含まれます。 (数値を降順にソート) 。
例 3. 多次元配列のソート
$ar = array(array("10", 11, 100, 100, "a"), array( 1, 2, "2", 3, 1)
); array_multisort($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
;
この例では、ソート後、最初の配列は「10」、100、100、11、「a」になります(昇順の文字列として扱われます)。 2 番目の配列には、1、3、「2」、2、1 (降順の数値として扱われます) が含まれます。
コードをコピー
コードは次のとおりです。
[0]=> (5) { [0]=> 文字列(2) "10" [1]=> int(100) [2]=> 3]= > int(11) [4]=> 文字列(1) "a"
}[1]=> 配列(5) {
[0]= > int (1)
[1]=> int(3)
[2]=> string(1)
[3]=> >[4 ]=> int(1)
}
}
例 4. データベースの結果の並べ替え
この例では、データ配列の各セルがテーブルを表しますラインの。これは、データベースに記録される典型的なデータのコレクションです。
例のデータは次のとおりです:
ボリューム | エディション
---------- --------
67 |
1 85 | 6
98 | 2
86 | 6
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'エディション' => 1);
$data[] = 配列('ボリューム' => 85, 'エディション' => 6); ('ボリューム' => 98, 'エディション' => 2);
$data[] = array('ボリューム' => 86, 'エディション' => 6); [] = array('volume' => 67, 'edition' => 7);
?>
この例では、ボリュームは降順に並べ替えられます。エディションは昇順にソートされます。
コードをコピー コードは次のとおりです:
// 列のリストを取得します上記の例は次のように出力します:
Array
(
[0] => Alpha
[1] = > atomic
[2] => バンク
[3] => ベータ
)