概要
PHPの多次元配列で、指定したキーを基準にソートしたい場合、次のように処理を書く。
- ソートしたいキーの配列を作成して、
- 関数
array_multisort()
に渡してあげる。
それを1行でやってしまおう。
(PHP5.5.0以降)
よくあるやり方。
track_num の番号でソートしたい場合、track_numだけを抽出した配列 $sort
を作って array_multisort()
の第一引数に渡す。
array_multisort.php
foreach ((array) $array as $key => $value) {
$sort[$key] = $value['track_num'];
}
array_multisort($sort, SORT_ASC, $array);
var_dump($array);
引用:PHPの多次元連想配列のソート
https://qiita.com/shy_azusa/items/54dadc55e3e71cde1445
1行でやる
関数 array_column()
を使います。
(PHP5.5.0以降で使えます。)
array_multisort_1liner.php
array_multisort (array_column($array, 'track_num'), SORT_ASC, $array);
var_dump($array);
参考:One-liner function to sort multidimensionnal array by key, thank's to array_column
(多次元配列のキーを指定して1ライナーでソートする。感謝するぜ、array_column。 )
https://www.php.net/manual/ja/function.array-multisort.php#119291