【未解決】二次元配列Aを、配列Bに指定された順にソートする方法
// 配列A $hoge = array( array('fuga' => 1), array('fuga' => 2), array('fuga' => 3), ); // 配列B $fuga = array(2,1,3);
という2つの配列があるとして、配列A($hoge)を↓のようにソートしたい。
$hoge = array( array('fuga' => 2), array('fuga' => 1), array('fuga' => 3), );
とりあえず↓のような感じで実装したのですが、
もっとシンプルに済む方法があれば誰か教えてください。
配列系の関数を上手く組み合わせれば良い気はするのだが…
// $hogeのキーをfugaの値にした$tmp_hogeを作る $tmp_hoge = array(); foreach ($hoge as $val) { $tmp_hoge[$val['fuga']] = $val; } // $fugaをぐるぐる回して$tmp_hogeから値を取得して、一旦空にした$hogeにセット $hoge = array(); foreach ($fuga as $val) { $hoge[] = $tmp_hoge[$val]; }