Мне интересно, есть ли у кого-нибудь хорошие идеи по оптимизации следующего кода.У меня есть многомерный массив ($ List) следующим образом:
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);
Отлично.Затем я переупорядочиваю массив, сначала по полю приоритета, а затем по идентификатору:
$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 записей, поэтому любые улучшения приветствуются!