익명 함수를 사용하여 PHP 배열 중복 제거를 구현할 수 있습니까?
로는 충분하지 않습니다. 익명 기능은 이러한 시나리오를 처리 할 수있는 유연성을 제공합니다. 이 코드는 array_unique()
array_filter()
이 코드가 익명 함수와 함께 배열을 반복하여 사용합니다. 익명 함수는 동일한 'ID'가있는 요소가 이미 array_unique()
배열에 존재하는지 확인합니다 (고유 요소를 축적 함). 그렇지 않다면 요소를 추가합니다. 마지막으로,
<code class="php">$array = [ ['id' => 1, 'name' => 'apple'], ['id' => 2, 'name' => 'banana'], ['id' => 1, 'name' => 'apple'], ['id' => 3, 'name' => 'orange'] ]; $uniqueArray = array_unique($array, SORT_REGULAR); //This won't work as expected $uniqueArray = array_reduce($array, function ($carry, $item) { $key = $item['id']; //Deduplication based on 'id' if (!isset($carry[$key])) { $carry[$key] = $item; } return $carry; }, []); $uniqueArray = array_values($uniqueArray); //Convert back to indexed array print_r($uniqueArray);</code>PHP 배열에 대한 익명 함수를 사용하면 특히 간단한 termbluplication을 사용하여 간단한 외향 공제를 처리 할 때 효율적일 수 있습니다. 그러나 효율은 배열의 구현 및 크기에 크게 의존합니다. 값을 기준으로 간단한 중복 제거의 경우
가 일반적으로 더 효율적입니다. 큰 배열에서 각 요소에 대한 익명 함수를 호출하는 오버 헤드는 눈에 띄게 될 수 있습니다. array_reduce
효율은 선택한 배열 함수에 따라 다릅니다. array_values
다른 방법과 비교하여 표적 외부 복제에 비해 익명 기능을 사용하는 성능은 무엇입니까? 방법은 다면적이다 :
array_unique()
는 일반적으로 가장 빠른 옵션입니다. 이 특정 작업에 대해 최적화됩니다. array_unique()
익명 함수 array_filter()
또는 array_reduce()
의 함수 호출 오버 헤드를 피합니다. 배열이 이미 정렬 된 경우 특정 알고리즘은 효율성을 향상시키기 위해이를 활용할 수 있습니다. 요약하면 익명 기능은 유연성을 제공하지만 항상 최상의 성능으로 번역되는 것은 아닙니다. 간단한 중복 제거를 위해 array_reduce
array_reduce
연관 배열의 특정 키를 기반으로 한 중복 제거 : 첫 번째 예에서 볼 수 있듯이 익명 함수는 이것에 이상적입니다. array_filter
복잡한 비교 논리와의 중복 제거제 (예 : 비교 대상을 구현할 수 있습니다. 속성). 위 내용은 익명 함수를 사용하여 PHP 배열 중복 제거를 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!