array_multisort() 関数を使用して、複数の配列または多次元配列を並べ替えます。配列の並べ替えと多次元配列の並べ替えを学習している友人は参考にしてください。
関数 bool array_multisort ( array &$arr [,mixed $arg = SORT_ASC [,mixed $arg = SORT_REGULAR [,mixed $...]]] )
パラメータの説明: この関数は複数の配列または多次元配列をソートします
最初のパラメータは配列であり、後続の各パラメータは配列または次の並べ替え順序フラグです
SORT_ASC - デフォルト、昇順で並べ替えます
SORT_DESC - 降順で並べ替えます
その後に、ソートのタイプ
SORT_REGULAR - デフォルト。各項目を規則正しい順序で並べます。
SORT_NUMERIC - 各項目を数値順に並べ替えます。
SORT_STRING - 各項目をアルファベット順に並べ替えます。
例:
コードをコピー コードは次のとおりです:
$arr1 = array('10' , 11, 100, 100, 'a');
$arr2 = array(1, 2, 3, '2', 5);
array_multisort($arr1, $arr2); ;
$arr1
Array ( [0] => 10 [1] => a [2] => 11 [3] => 100 [4] => ; 100 )
# '10' は、11、100、100 と比較すると、他の 3 つの数値より小さい整数 10 に変換されます
# '10' は、'a と比較すると文字列として使用されます'、最初の文字 '1' の ASCII コード値は 49 で、'a' (ASCII 値は 97) より小さいため、'10' が最小の要素です
# 'a' は比較時に整数 0 に変換されます他の 3 つの数値は、他の 3 つの数値より小さい Number
$arr2
Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 2 [4] => 3 )
# $arr2 要素 1 は $arr1 要素 '10' 位置に対応するため、[0] 位置にランクされます
# $arr1[2] => 100, $ arr1[3] => 100 はそれぞれ $arr2 要素 3、'2' に対応します。 3 は '2' より大きいため、2 => 100 に対応する $arr1[2] にはソートされた添字 3 があり、3 => 100 に対応する $arr1[3] にはソートされたインデックス 4 があります
--------
1. ソートに必要な配列要素の数は変わりません
2. ソートされた配列要素の位置は、たとえば '10' => 1 に対応します。 , 11 => 2
3. 次の配列は前の配列の順序に基づいて並べ替えられます
4. 前の配列が等しい要素に遭遇した場合、次の配列が比較されます
コードをコピー コードは次のとおりです:
header('Content-Type: text/html; charset=utf- 8') ;
echo '
';
//元の配列形式
$array = array(
'key1' => ; '65 ',
'item2' => '35',
'item3' => '84',
),
'key2' => array(
'item1' => '24',
),
'key3' => array(
'item1' => '38',
'item3' => '45',
) ,
);
// 並べ替えるキー
// 配列の item1 に従って並べ替えます
// item2 に変更することもできます
$sort = 'item1' ; >foreach($array as $k => $v)
{
$newArr[$k] = $v[$sort];
}
//この関数が正しく実行された場合、元の配列キー値の順序を直接変更します
//実行が失敗した場合は、 bool(false) が返されます
array_multisort($newArr,SORT_DESC, $array); var_dump($array );
//----------ソートされた配列の出力効果が始まります----------- --- -----
array(3) {
["key1"]=>
array(3) {
["item1"]=> (2) "65"
["item2"]=>
文字列(2) "35"
["item3"]=>
文字列(2) "84"
}
["key3"]=>
array(2) {
["item1"]=>
string(2) "38"
["item3"] =>
文字列(2) "45"
}
["key2"]=>
配列(1) {
["item1"]=> string(2 ) "24"
}
}
///----------ソートされた配列の出力効果が終了します-- --- ----------------