我有一个ID为
的数组array(
0 => 12
1 => 30
2 => 50
3 => 11
4 => 22
5 => 45
[...]
)
和另一个看起来像
的多维数组array(
0 => array(
'id' => 12,
'title' => 'title 12',
),
1 => array(
'id' => 50,
'title' => 'title 50',
),
2 => array(
'id' => 11,
'title' => 'title 11',
),
3 => array(
'id' => 30,
'title' => 'title 30',
),
4 => array(
'id' => 45,
'title' => 'title 45',
),
5 => array(
'id' => 22,
'title' => 'title 22',
),
)
第二个数组的ID对应于第一个数组中的值。我需要做的是按照它们在第一个数组中的顺序,按子阵列的ID对第二个数组进行排序。
最好的方法是什么?
答案 0 :(得分:2)
假设带有ID的数组名为$order
,带有值的数组名为$items
:
$keys = array_flip($order);
usort($items, function($a, $b) use($keys)
{
return $keys[$a['id']] - $keys[$b['id']];
});