phpチュートリアルarray_multisort()関数の詳細説明
関数 bool array_multisort (配列 &$arr [, 混合 $arg = SORT_ASC [, 混合 $arg = SORT_REGULAR [, 混合 $...]]] )
パラメータの説明: この関数は複数の配列または多次元配列をソートします
最初のパラメータは配列であり、後続の各パラメータは配列または次のソート順序フラグである可能性があります
SORT_ASC - デフォルト、昇順で並べ替えます
SORT_DESC - 降順で並べ替えます
その後、並べ替えの種類を指定できます
SORT_REGULAR - デフォルト。各項目を規則正しい順序で並べます。
SORT_NUMERIC - 各項目を数値順に並べ替えます。
SORT_STRING - 各項目をアルファベット順に並べ替えます。
サンプルコード
$arr1 = 配列('10', 11, 100, 100, 'a');
$arr2 = 配列(1, 2, 3, '2', 5);
array_multisort($arr1, $arr2);
結果は次のとおりです:
$ar1
配列 ( [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' を他の 3 つの数値と比較すると、他の 3 つの数値よりも小さい整数 0 に変換されます
$arr2
配列 ( [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' より大きいため、$arr1[2] は 2 => 100 に対応します。ソートされた添字は
3, $arr1[3] は 3 に対応 => 100 個のソートのインデックスは 4 です
まとめ
1. ソートに必要な配列要素の数は変わりません
2. ソートされた配列要素の対応する位置は次のとおりです: ‘10’ => 1, 11 => 2
3. 次の配列は、前の配列の順序に基づいて並べ替えられます
4. 前の配列で等しい要素が見つかった場合は、次の配列を比較します
パラメータ | 説明 |
---|---|
配列1 | 必須。入力配列を指定します。 |
並び順 | オプション。並べ替えの順序を指定します。可能な値は SORT_ASC と SORT_DESC です。 |
仕分けタイプ | オプション。並べ替えの種類を指定します。可能な値は、SORT_REGULAR、SORT_NUMERIC、および SORT_STRING です。 |
配列2 | オプション。入力配列を指定します。 |
配列3 | オプション。入力配列を指定します。 |
注: 文字列キー名は保持されますが、数値キーは 0 から始まり 1 ずつ増加して再インデックスされます。
注: 各配列の後に並べ替え順序と並べ替えの種類を設定できます。設定されていない場合、各配列パラメーターはデフォルトを使用します