PHP 개발에서는 배열 교차가 일반적인 작업입니다. 그러나 PHP에서 제공하는 배열 교차 함수는 두 배열의 경우에만 처리할 수 있습니다. 여러 배열의 교차점을 처리해야 하는 경우 교차점 작업을 사용자 정의해야 합니다.
이 글에서는 PHP 배열의 교차점을 사용자 정의하고 구현 코드를 제공하는 방법을 소개합니다.
여러 배열의 교집합을 처리해야 합니다. 예를 들어 다음과 같은 4개의 배열이 있습니다.
$arr1 = array(1, 2, 3); $arr2 = array(2, 3, 4); $arr3 = array(3, 4, 5); $arr4 = array(4, 5, 6);
이제 이 4개의 배열의 교집합을 풀어야 합니다.
다음 단계를 통해 배열 교차를 구현할 수 있습니다.
2.1 모든 배열의 요소를 새 배열에 저장한 다음 새 배열에서 중복 제거 작업을 수행합니다.
2.2 각 요소가 원래 배열에 나타나는 횟수를 계산합니다. 숫자가 원래 배열의 수와 같으면 해당 요소가 모든 원래 배열에 나타났다는 의미이며 결과 배열에 추가됩니다.
다음은 구체적인 구현 코드입니다.
function array_intersect_multi() { $arrays = func_get_args(); $counts = array_count_values(call_user_func_array('array_merge', $arrays)); $intersected_array = array(); $arrays_count = count($arrays); foreach ($counts as $value => $count) { if ($count === $arrays_count) { $intersected_array[] = $value; } } return $intersected_array; }
위 코드의 array_intersect_multi()
함수는 여러 배열의 교차 연산을 구현할 수 있습니다. array_intersect_multi()
可以实现多个数组的交集操作。
该函数有一个入参,即数组集合,数组集合是一个由多个数组组成的数组。
该函数会将数组集合中所有数组的元素添加到新数组中,并对新数组进行去重操作。
然后,该函数会统计每个元素在原数组中出现的次数,如果次数等于原数组的个数,说明该元素在所有原数组中都出现过,将其加入结果数组中。
最终,函数会返回数组交集结果。
我们可以使用上述函数来求解四个数组的交集,示例如下:
$arr1 = array(1, 2, 3); $arr2 = array(2, 3, 4); $arr3 = array(3, 4, 5); $arr4 = array(4, 5, 6); $intersected_array = array_intersect_multi($arr1, $arr2, $arr3, $arr4); print_r($intersected_array);
输出结果为:
Array ( [0] => 4 )
可以看到,四个数组的交集为 4
4
입니다. 🎜🎜🎜요약🎜🎜🎜배열 교차 작업을 사용자 정의하면 여러 배열의 교차를 쉽게 처리할 수 있습니다. 이 기사에서는 배열 교차를 구현하는 단계와 코드를 소개합니다. 모든 사람에게 도움이 되기를 바랍니다. 🎜위 내용은 배열 교차의 PHP 사용자 정의 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!