我有此數組:排序基於普通數組的順序多維數組
$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']'但是多維數組搜索通常需要像這樣的自定義函數(或兩個) –
您可以使用代碼作爲密鑰爲陣列?然後你可以簡單地通過鍵查找值。 –