배열 교차의 PHP 사용자 정의 구현

WBOY
풀어 주다: 2023-05-23 10:32:36
원래의
484명이 탐색했습니다.

PHP 개발에서는 배열 교차가 일반적인 작업입니다. 그러나 PHP에서 제공하는 배열 교차 함수는 두 배열의 경우에만 처리할 수 있습니다. 여러 배열의 교차점을 처리해야 하는 경우 교차점 작업을 사용자 정의해야 합니다.

이 글에서는 PHP 배열의 교차점을 사용자 정의하고 구현 코드를 제공하는 방법을 소개합니다.

  1. 문제 설명

여러 배열의 교집합을 처리해야 합니다. 예를 들어 다음과 같은 4개의 배열이 있습니다.

$arr1 = array(1, 2, 3);
$arr2 = array(2, 3, 4);
$arr3 = array(3, 4, 5);
$arr4 = array(4, 5, 6);
로그인 후 복사

이제 이 4개의 배열의 교집합을 풀어야 합니다.

  1. 해결 방법

다음 단계를 통해 배열 교차를 구현할 수 있습니다.

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;
}
로그인 후 복사
  1. 함수 설명

위 코드의 array_intersect_multi() 함수는 여러 배열의 교차 연산을 구현할 수 있습니다. array_intersect_multi() 可以实现多个数组的交集操作。

该函数有一个入参,即数组集合,数组集合是一个由多个数组组成的数组。

该函数会将数组集合中所有数组的元素添加到新数组中,并对新数组进行去重操作。

然后,该函数会统计每个元素在原数组中出现的次数,如果次数等于原数组的个数,说明该元素在所有原数组中都出现过,将其加入结果数组中。

最终,函数会返回数组交集结果。

  1. 示例

我们可以使用上述函数来求解四个数组的交集,示例如下:

$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

이 함수에는 배열 컬렉션인 하나의 입력 매개변수가 있습니다. 배열 컬렉션은 여러 배열로 구성된 배열입니다.
  1. 이 함수는 배열 컬렉션에 있는 모든 배열의 요소를 새 배열에 추가하고 새 배열에서 중복 제거 작업을 수행합니다.
그런 다음 함수는 각 요소가 원래 배열에 나타나는 횟수를 계산합니다. 숫자가 원래 배열의 수와 같으면 해당 요소가 모든 원래 배열에 나타 났음을 의미하며 다음에 추가됩니다. 결과 배열.

마지막으로 이 함수는 배열 교차 결과를 반환합니다. 🎜
    🎜Example🎜🎜🎜위 함수를 사용하여 네 배열의 교집합을 풀 수 있습니다. 예제는 다음과 같습니다. 🎜rrreee🎜출력 결과는 다음과 같습니다. 🎜rrreee🎜 네 배열의 교집합은 4입니다. 🎜🎜🎜요약🎜🎜🎜배열 교차 작업을 사용자 정의하면 여러 배열의 교차를 쉽게 처리할 수 있습니다. 이 기사에서는 배열 교차를 구현하는 단계와 코드를 소개합니다. 모든 사람에게 도움이 되기를 바랍니다. 🎜

위 내용은 배열 교차의 PHP 사용자 정의 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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