PHP 개발에서는 배열을 정렬해야 하는 경우가 많은데, 정렬된 배열에 중복된 요소가 나타날 수 있습니다. 이때 배열에서 중복된 요소를 삭제하는 코드를 작성해야 합니다. 이 기사에서는 PHP의 정렬된 배열에서 중복 항목을 제거하는 방법을 보여줍니다.
1. array_unique() 함수를 사용하세요
array_unique() 함수는 배열에서 중복된 요소를 제거할 수 있습니다. 하지만 이 함수는 정렬되지 않은 배열만 처리할 수 있으므로 sort() 또는 함수를 사용해야 합니다. rsort() 정렬 배열과 같은 것입니다.
샘플 코드:
$arr = array(1, 2, 2, 3, 4, 4, 5); sort($arr);//排序 $newArr = array_unique($arr);//去重 print_r($newArr);
출력 결과:
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
원래 배열의 키 이름을 유지해야 하는 경우 array_unique() 함수의 두 번째 매개 변수를 사용할 수 있습니다.
$arr = array('a' => 1, 'b' => 2, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 4, 'g' => 5); asort($arr);//排序 $newArr = array_unique($arr, SORT_REGULAR);//去重 print_r($newArr);
출력 결과:
Array ( [a] => 1 [b] => 2 [d] => 3 [e] => 4 [g] => 5 )
2 . 배열을 탐색하여 중복 항목을 제거합니다.
정렬된 배열에서 중복을 제거하는 또 다른 방법은 배열을 반복하고 중복 요소가 발견되면 unset() 함수를 사용하여 배열에서 요소를 제거하는 것입니다.
샘플 코드:
$arr = array(1, 2, 2, 3, 4, 4, 5); sort($arr);//排序 for($i=0;$i<count($arr)-1;$i++){ if($arr[$i] == $arr[$i+1]){ unset($arr[$i+1]);//删除重复元素 } } print_r($arr);
출력 결과:
Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )
이 방법을 사용하여 요소를 삭제하면 원래 배열의 인덱스가 재정렬되므로 주의할 점은 $i+1 인덱스를 사용해야 합니다. 삭제하지 않으면 누락됩니다. 중복된 요소를 제거하세요.
3. 배열 재귀를 사용하여 중복 제거
배열이 다차원인 경우 재귀를 사용하여 중복을 제거할 수 있습니다.
샘플 코드:
$arr = array( 1, 2, 2, array( 3, 4, 4, 5, array( 6, 7, 7, ), ), ); sort($arr);//排序 function uniqueArray($arr){ foreach($arr as $k => $v){ if(is_array($v)){ $arr[$k] = uniqueArray($v); } } return array_unique($arr); } $newArr = uniqueArray($arr);//递归去重 print_r($newArr);
출력 결과:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [6] => 5 [9] => 6 [10] => 7 )
이 방법은 다차원 배열을 중복 제거하고 원본 배열의 구조를 유지할 수 있습니다.
결론
PHP 개발에서 정렬된 배열에서 중복 항목을 삭제하는 것은 매우 일반적인 작업입니다. 이 기사에서는 array_unique() 함수 사용, 배열을 순회하여 삭제, 재귀적으로 배열 중복 제거라는 세 가지 방법을 소개합니다. 상황에 따라 적합한 방법이 다르므로 필요에 따라 적합한 방법을 선택할 수 있습니다.
위 내용은 PHP의 정렬된 배열에서 중복을 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!