2차원 배열에서 동일한 요소를 삭제하는 것은 PHP에서 매우 일반적인 작업입니다. 삭제를 수행하기 전에 어떤 요소가 동일한지 확인하려면 복잡한 계산이 필요한 경우가 많습니다. 다행스럽게도 PHP는 이러한 작업을 완료하는 데 도움이 되는 몇 가지 유용한 기능을 제공합니다. 이 기사에서는 PHP의 2차원 배열에서 동일한 요소를 삭제하는 데 도움이 되는 몇 가지 기능과 기술을 소개합니다.
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 函数映射回原来的键 / 值对。
要使用 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
배열에서 중복 값을 제거하고 모든 숫자 키가 있으면 다시 색인을 생성합니다. 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를 다시 사용하여 배열을 역직렬화하고 인덱스를 다시 그립니다.
위 내용은 PHP의 2차원 배열에서 동일한 요소를 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!