这是我的阵列
$items = array( "100"=>
array(
'id' => 15,
'category' => array('id'=>'100010'),
'description' => array('type'=>'Drink'),
),
"101"=>
array(
'id' => 13,
'category' => array('id'=>'100055'),
'description' => array('type'=>'Fruit'),
),
"102"=>
array(
'id' => 21,
'category' => array('id'=>'100002'),
'description' => array('type'=>'Vege'),
)
);
$soryBy = array(array('id'=>'100055'),array('id'=>'100002'),array('id'=>'100010'));
根据$items
对category
$soryBy
进行排序的方法是什么?我可以使用任何现有的PHP功能吗?
谢谢
答案 0 :(得分:2)
你要做的第一件事就是弄平你的$ sortBy数组
$sortBy = array_map(function($a) { return $a["id"]; }, $sortBy);
然后你可以使用带闭包的usort
usort($items, function($a, $b) use ($sortBy) {
return array_search($a["category"]["id"], $sortBy) - array_search($b["category"]["id"], $sortBy);
});
请注意,此解决方案适用于PHP 5.3及更高版本。