私はこの配列を持っています:
$routes = array(
array(
'code' => 'PZSA',
'name' => 'PLaza san antonio',
),
array(
'code' => 'AVAD',
'name' => 'Av de asturias',
),
array(
'code' => 'AVAR',
'name' => 'Av simon nieto',
)
);
そして、次のキーに基づいて並べ替えたい:
$target = array('AVAD', 'AVAR', 'PZSA');
したがって、ソートされた配列は次のようになります。
Array
(
[0] => Array
(
[code] => AVAD
[name] => Av de asturias
)
[1] => Array
(
[code] => AVAR
[name] => Av simon nieto
)
[2] => Array
(
[code] => PZSA
[name] => PLaza san antonio
)
)
私はこれを試してみましたが、うまくいきましたが、この単純なことにはコードが多すぎると思います. 代替案はありますか?ありがとう。
function _sort($array, $orderArray) {
$ordered = array();
foreach ($orderArray as $key) {
$ordered[] = find($key, $array);
}
return $ordered;
}
function find($code, $routes) {
foreach ($routes as $key => $value) {
if ($routes[$key]['code'] == $code) {
return $routes[$key];
}
}
}
$sorted = _sort($routes, $target);