多次元配列を「年齢順」とか「点数順」とかで並べ替えたいときって結構あります。そんなときはarray_column()とarray_multisort()を組み合わせて並べ替えできるみたい。
$user = array();//並べ替えたい多次元配列
$key = 'key';//並べ替えの基準にしたいキー
array_multisort(array_column($array,$key),SORT_ASC,$array);
これで多次元配列を並べ替えてくれます。戻り値は成功したらtrue、失敗したらfalseが返ります。
・サンプル
$user = [
['name' => '山田','age' => '22'],
['name' => '田中','age' => '19'],
['name' => '中村','age' => '55'],
['name' => '村井','age' => '32']
];
$sort_check = array_multisort(array_column($user,'age'),SORT_ASC,$user);
var_dump($sort_check);
var_dump($user);
・出力結果
[template-post ‘152’]
こちらのページを参考にさせていただきました。
【PHP】多次元配列のソート:連想配列の配列のキーを指定し並び替える!
https://zenn.dev/fijii_rin/articles/913e34fb08843d
コメント