LoginSignup
0
4

More than 3 years have passed since last update.

[PHP]多次元配列のソートを1行で書く

Last updated at Posted at 2019-12-09

概要

PHPの多次元配列で、指定したキーを基準にソートしたい場合、次のように処理を書く。

  1. ソートしたいキーの配列を作成して、
  2. 関数 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

0
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
4