방법은 다음과 같습니다.
$arr = array(…………);//10,000개의 요소가 반복되는 배열이 있다고 가정합니다.
$arr = array_flip(array_flip($arr)); //이 방법으로 중복된 요소를 삭제할 수 있습니다.
대체 무슨 일이 일어나고 있는 걸까요? array_flip()의 함수를 살펴보겠습니다. array_flip()은 다음과 같이 배열의 각 요소에 대한 키와 값을 교환하는 데 사용됩니다.
$arr1 = array ("age" => 30, "name" => ; "행복한 정원");
$arr2 = array_flip($arr1); //$arr2는 array(30 => "나이", "이름"); PHP 배열에서는 서로 다른 요소가 동일한 값을 사용할 수 있지만 다음과 같이 서로 다른 요소에서 동일한 키 이름을 사용할 수는 없습니다.
$arr1 = array ("age" => 30, "name" = > "행복한 정원", "나이" => 20); "나이" => 30
$arr1 = 배열("이름" => "행복한 정원" ", "age" => 45);
여기서 $arr1과 $arr2는 동일합니다.
그러면 array_flip(array_flip($arr))이 배열에서 중복된 요소를 삭제할 수 있는 이유를 알 수 있습니다. 먼저 $arr의 값이 키 이름이 됩니다. 값이 반복되기 때문입니다. 키 이름이 된 후에는 이러한 반복된 값이 중복된 키 이름이 됩니다. PHP 엔진은 중복된 키 이름을 삭제하고 마지막 키 이름만 유지합니다. 하나. . 예:
$arr1 = array ("age" => 30, "name" => "Happy Park", "age" => 20)
$arr1 = array_flip($arr1); $arr1은 array("Happy Garden" => "name", 20 => "age")
//$arr1의 키 이름과 값을 복원합니다:
$ arr1 = array_flip($arr1 );
위 코드는 더 간결하게 작성되었습니다. $arr1 = array_flip(array_flip($arr1));