アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

【未解決】二次元配列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];
}