方法
|
1 2 3 4 5 |
array_multisort( array_column( [ソート対象配列], '[ソート対象のキー]'), [昇順/降順], [ソート対象配列] ); |
SORT_ASC : 昇順(小さいほうから順番に)
SORT_DESC : 降順(大きいほうから順番に)
複数条件にする場合
|
1 2 3 4 5 6 7 |
array_multisort( array_column( [ソート対象配列], '[ソート対象のキー]'), [昇順/降順], array_column( [ソート対象配列], '[ソート対象のキー]'), [昇順/降順], [ソート対象配列] ); |
サンプルプログラム
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<?PHP $sortdata[0] = array( "no" => 5, "name" => "山田" ); $sortdata[1] = array( "no" => 1, "name" => "佐藤" ); $sortdata[2] = array( "no" => 4, "name" => "田中" ); $sortdata[3] = array( "no" => 2, "name" => "鈴木" ); $sortdata[4] = array( "no" => 3, "name" => "高橋" ); //処理前表示 echo "処理前\n"; print_r($sortdata); //ソート処理 //noキーで降順(SORT_DESC)にソート array_multisort( array_column($sortdata, 'no'), SORT_DESC, $sortdata ); //処理後表示 echo "処理後\n"; print_r($sortdata); ?> |
結果
処理前
Array
(
[0] => Array
(
[no] => 5
[name] => 山田
)
[1] => Array
(
[no] => 1
[name] => 佐藤
)
[2] => Array
(
[no] => 4
[name] => 田中
)
[3] => Array
(
[no] => 2
[name] => 鈴木
)
[4] => Array
(
[no] => 3
[name] => 高橋
)
)
処理後
Array
(
[0] => Array
(
[no] => 5
[name] => 山田
)
[1] => Array
(
[no] => 4
[name] => 田中
)
[2] => Array
(
[no] => 3
[name] => 高橋
)
[3] => Array
(
[no] => 2
[name] => 鈴木
)
[4] => Array
(
[no] => 1
[name] => 佐藤
)
)