>  기사  >  백엔드 개발  >  PHP의 배열에서 중복을 제거하는 방법(함수를 사용하지 않고)

PHP의 배열에서 중복을 제거하는 방법(함수를 사용하지 않고)

PHPz
PHPz원래의
2023-04-26 09:14:52394검색

PHP 개발에서 우리는 배열의 중복을 제거해야 하는 시나리오에 자주 직면합니다. 일반적으로 이를 달성하기 위해 array_unique 함수를 사용할 수 있습니다. 그러나 함수를 사용하지 않고 어레이 중복 제거를 달성하는 방법은 무엇입니까? 이 문서에서는 루프를 사용하여 어레이 중복 제거를 수행하는 방법을 소개합니다.

방법 1: 루프를 사용하여 배열 중복 제거 달성

구체적인 구현 프로세스는 다음과 같습니다.

<?php
//定义测试数组
$arr = array(1,2,3,2,1,4,5,4,6);
$count = count($arr);
//循环遍历数组
for ($i=0; $i<$count; $i++) {
 //从第i个元素之后循环判断是否有相同值
 for ($j=$i+1; $j<$count; $j++) {
  //如果有相同值,则删除当前元素
  if ($arr[$i] == $arr[$j]) {
   array_splice($arr, $j, 1); //使用array_splice函数删除元素
   //因为删除元素后,数组长度发生了变化,需要重新计算数组长度
   $count = count($arr);
   $j--; //指针向前移动,避免遗漏元素
  }
 }
}
//打印去重后的数组
print_r($arr);
?>

위 코드에서는 for 루프를 사용하여 배열을 탐색하고, 각 요소에 대해 for 루프를 사용하여 동일한 값이 있는지 확인하려면 Traverse 요소 다음의 요소부터 시작합니다. 있는 경우 array_splice 함수를 사용하여 중복 요소를 제거하고 배열 길이와 포인터 위치를 다시 계산하여 요소 누락을 방지하세요.

방법 2: 핵심 기능을 사용하여 배열 중복 제거 구현

루프 방법을 사용하는 것 외에도 PHP 핵심 기능을 사용하여 배열 중복 제거를 구현할 수도 있습니다. 구체적인 구현 과정은 다음과 같습니다.

<?php
//定义测试数组
$arr = array(1,2,3,2,1,4,5,4,6);
//使用array_keys函数获取数组中每个元素的键值
$keys = array_keys($arr);
//使用array_values函数获取数组中每个元素的值
$values = array_values($arr);
//使用array_unique函数对values数组进行去重
$values = array_unique($values);
//使用array_combine函数将keys数组和去重后的values数组重新组成一个数组
$arr = array_combine($keys, $values);
//打印去重后的数组
print_r($arr);
?>

위 코드에서는 먼저 array_keys 및 array_values ​​​​함수를 사용하여 배열에 있는 각 요소의 키와 값을 각각 얻고, array_unique 함수를 사용하여 값을 중복 제거합니다. 배열을 만든 다음 array_combine 함수를 사용하여 키를 결합합니다. 배열과 중복 제거된 값 배열이 새로운 배열로 다시 결합됩니다. 이 방법은 비교적 간단하지만, 요소가 많으면 메모리 사용량이 많아질 수 있고, 루프 방식만큼 성능도 좋지 않습니다.

요약:

배열 중복 제거는 PHP 개발에서 자주 발생하는 문제입니다. 이를 달성하기 위해 루프나 핵심 기능을 사용할 수 있습니다. 루프 방법을 사용하면 시간이 더 많이 걸릴 수 있지만 메모리를 덜 차지하며 요소 수가 적은 배열에 적합합니다. 핵심 함수 방식을 사용하면 요소 값을 새로운 배열로 재구성하는데, 이는 더 많은 메모리를 차지하지만 중복 제거 작업을 더 빠르게 완료할 수 있으며 요소 수가 많은 배열에 적합합니다.

위 내용은 PHP의 배열에서 중복을 제거하는 방법(함수를 사용하지 않고)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.