1
我想知道是否有人在优化下面的代码方面有什么好的想法。我有一个多维数组($列表)如下:优化重新排序和重复删除多维数组
Array
(
[0] => Array
(
[id] => 1
[title] => A good read
[priority] => 10
)
[1] => Array
(
[id] => 2
[title] => A bad read
[priority] => 20
)
[2] => Array
(
[id] => 3
[title] => A good read
[priority] => 10
)
)
首先,我删除共享相同的标题(无论什么其它值),如下所示的条目:
$List_new = array();
foreach ($List as $val) {
$List_new[$val['title']] = $val;
}
$List = array_values($List_new);
完美。然后我重新排序阵列,首先由优先级字段,然后ID:
$sort_id = array();
$sort_priority = array();
foreach ($List as $key => $row) {
$sort_id[$key] = $row['id'];
$sort_priority[$key] = $row['priority'];
}
array_multisort($sort_priority, SORT_DESC, $sort_id, SORT_DESC, $List);
两个代码块出现在一个循环中,$ sort_id和重新排序前$ sort_priority因此结算。
有没有更好的方法来做到这一点 - 即使用排序过程删除重复的标题条目?这个代码块正在执行循环高达500,000条记录,所以任何改进都会受到欢迎!