PHP의 2차원 배열에서 동일한 요소를 삭제하는 방법

PHPz
풀어 주다: 2023-04-26 09:49:08
원래의
554명이 탐색했습니다.

2차원 배열에서 동일한 요소를 삭제하는 것은 PHP에서 매우 일반적인 작업입니다. 삭제를 수행하기 전에 어떤 요소가 동일한지 확인하려면 복잡한 계산이 필요한 경우가 많습니다. 다행스럽게도 PHP는 이러한 작업을 완료하는 데 도움이 되는 몇 가지 유용한 기능을 제공합니다. 이 기사에서는 PHP의 2차원 배열에서 동일한 요소를 삭제하는 데 도움이 되는 몇 가지 기능과 기술을 소개합니다.

  1. array_map 및 array_unique 함수 사용

array_map 함수는 배열의 각 요소에 함수를 적용하고 새 배열을 반환합니다. array_map 함수와 array_unique 함수를 사용하여 2차원 배열에서 동일한 요소를 삭제할 수 있습니다. 먼저 array_map 함수를 사용하여 2D 배열의 모든 값을 추출하겠습니다. 그런 다음 array_unique 함수를 사용하여 이 새 배열에서 중복 값을 제거합니다. 마지막으로 array_map 함수를 사용하여 추출된 값을 원래 2D 배열 형식으로 다시 매핑하겠습니다.

function removeDuplicates($arr) {
    $flatten = array_map('array_values', $arr); 
    $unique_values = array_map('unserialize', array_unique(array_map('serialize', $flatten))); 
    return array_map('array_combine', array_keys($arr), array_values($unique_values));
}
로그인 후 복사

이 함수는 다음과 같이 작동합니다.

먼저 array_map 함수를 사용하여 2차원 배열을 1차원 배열로 변환합니다. 이 함수는 각 요소가 작은 배열의 모든 값을 나타내는 새 배열을 반환한 다음 큰 배열에 캡슐화합니다. array_map 函数将二维数组转化如一维数组。这个函数将会返回一个新的数组,其中每个元素代表着小数组中的所有值,这些值再被封装在大数组中。

array_unique 函数会删除 $flatten 数组中的重复值,并重新索引所有的数字键(如果它们存在的话)。

之后,我们发现索引已经被重置了,所以将值 unserialize,重新索引,并使用 array_combine 函数映射回原来的键 / 值对。

  1. 使用 foreach 遍历数组

要使用 foreach 遍历数组来删除相同的元素,我们需要先遍历并创建一个关联数组。在得到所有的值后,我们可以使用 array_unique 函数删除数组中的重复值。最后,我们可以使用 foreach 循环重复映射值。

function removeDuplicates($arr) {
    $new_arr = array();
    foreach ($arr as $key => $value) {
        $new_arr[$key] = serialize($value);
    }
    $unique_arr = array_unique($new_arr);
    foreach ($unique_arr as $key => $value) {
        $unique_arr[$key] = unserialize($value);
    }
    return $unique_arr;
}
로그인 후 복사

这段代码会遍历数组,将键和一个经过序列化的数组值添加到 $new_arr

array_unique 함수는 $Flatten 배열에서 중복 값을 제거하고 모든 숫자 키가 있으면 다시 색인을 생성합니다.
  1. 나중에 인덱스가 재설정된 것을 확인하여 값을 직렬화 해제하고 다시 인덱스한 다음 array_combine 함수를 사용하여 원래 키/값 쌍으로 다시 매핑합니다.
    1. foreach를 사용하여 배열 탐색

      foreach를 사용하여 배열을 탐색하여 동일한 요소를 삭제하려면 먼저 연관 배열을 탐색하고 생성해야 합니다. 모든 값을 얻은 후 array_unique 함수를 사용하여 배열에서 중복된 값을 제거할 수 있습니다. 마지막으로 foreach 루프를 사용하여 값을 반복적으로 매핑할 수 있습니다.

      function removeDuplicates($arr) {
          $unique_arr = array();
          foreach ($arr as $key => $value) {
              if (!in_array($value, $unique_arr)) {
                  $unique_arr[$key] = $value;
              }
          }
          return $unique_arr;
      }
      로그인 후 복사
      이 코드는 배열을 반복하면서 키와 직렬화된 배열 값을 $new_arr 연관 배열에 추가합니다. 다음으로 array_unique 함수를 사용하여 중복 요소를 제거합니다. 마지막으로 foreach를 다시 사용하여 배열을 역직렬화하고 인덱스를 다시 그립니다.

      첫 번째 값과 다른 방식🎜🎜🎜세 번째 방법은 처음 두 가지 방법과 다릅니다. 모든 요소를 ​​반복하지만 첫 번째 값만 유지합니다. 마찬가지로 foreach 루프를 사용하여 배열을 반복할 수 있습니다. 중복되지 않은 값의 경우 $unique_arr 배열에 추가하고, 그렇지 않으면 단순히 요소를 건너뜁니다. 🎜rrreee🎜이 함수는 모든 배열 요소를 반복하고 in_array() 함수를 사용하여 해당 요소가 $unique_arr 배열에 추가되었는지 확인합니다. 요소가 발견되지 않으면 배열에 추가됩니다. 이 함수는 모든 🎜동일한 요소가 제거된 배열 🎜을 반환합니다. 🎜🎜array_map을 사용하든 foreach 함수를 사용하든 위의 팁을 사용하면 PHP 2D 배열에서 동일한 요소를 쉽게 삭제할 수 있습니다. PHP에서 배열을 보다 효율적으로 사용할 수 있도록 이러한 함수를 이해하고 사용하는 것을 잊지 마십시오. 🎜

    위 내용은 PHP의 2차원 배열에서 동일한 요소를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿