我有此数组:排序基于普通数组的顺序多维数组
$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);
有几件事情可以最小化,'$ routes [$ key] ['code']'可以变成'$ value ['code']'但是多维数组搜索通常需要像这样的自定义函数(或两个) –
您可以使用代码作为密钥为阵列?然后你可以简单地通过键查找值。 –