다음 코드를 최적화하는 데 유용한 아이디어가 있는지 궁금합니다.다차원 배열의 재정렬 및 중복 제거 최적화
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);
다음과 같이 나는 다차원 배열 ($ 목록)가
Perfect. 그럼 먼저 우선 순위 필드 다음 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 개의 레코드 루프에서 실행되므로 모든 개선 사항을 환영합니다!