【PHP】多次元連想配列でソートをする方法!
こんばんは。もっさんです。
最近あまり更新ができていませんでした(汗)
早速、表題の件記述していきます!
以下の配列があるとします。
<?php $array = array( array( 'id' => 5, 'name' => "tanaka" ), array( 'id' => 3, 'name' =>"satou" ), array( 'id' => 2, 'name' => "suzuki" ), array( 'id' => 4, 'name' => "itou" ), array( 'id' => 1, 'name' => "honda" ),); ?>
そのままの実行結果
Array ( [0] => Array ( [id] => 5 [name] => tanaka ) [1] => Array ( [id] => 3 [name] => satou ) [2] => Array ( [id] => 2 [name] => suzuki ) [3] => Array ( [id] => 4 [name] => itou ) [4] => Array ( [id] => 1 [name] => honda ) )
'id'でソートをしたいときに、array_multisort()を使う
<?php $array = array( array( 'id' => 5, 'name' => "tanaka" ), array( 'id' => 3, 'name' =>"satou" ), array( 'id' => 2, 'name' => "suzuki" ), array( 'id' => 4, 'name' => "itou" ), array( 'id' => 1, 'name' => "honda" ),); foreach($array as $key => $value) { $sort[$key] = $value['id']; //ソートしたい値を配列に入れる } array_multisort($sort, SORT_ASC, $array); //今回は昇順でソート print_r($array); ?>
実行結果
Array ( [0] => Array ( [id] => 1 [name] => honda ) [1] => Array ( [id] => 2 [name] => suzuki ) [2] => Array ( [id] => 3 [name] => satou ) [3] => Array ( [id] => 4 [name] => itou ) [4] => Array ( [id] => 5 [name] => tanaka ) )
こんな感じです。
array_multisort(①ソートの基準 , ②ソートの条件 , ③ソートしたい配列)
これからも細々と書いていきます。