我有这个数组:
$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);