PHP에서 array_intersect()는 두 개 이상의 배열 사이에서 동일한 요소를 비교하고 이러한 요소의 배열 교집합을 반환하는 데 사용할 수 있는 매우 유용한 배열 함수입니다. 이 기사에서는 array_intersect() 함수의 기본 사용법과 PHP 개발자가 이 함수를 더 잘 활용하는 데 도움이 되는 몇 가지 실용적인 팁을 소개합니다.
1. 함수 구문 및 기본 사용법
array_intersect() 함수 구문은 다음과 같습니다.
array_intersect ( array $array1 , array $array2 [, array $... ] ) : array
이 함수는 매개변수로 두 개 이상의 배열이 필요하지만 여러 배열을 허용할 수 있습니다. 함수의 반환 값은 모든 배열의 교차 요소를 포함하는 새 배열입니다. 예:
$arr1 = array('apple', 'banana', 'pear'); $arr2 = array('banana', 'orange', 'grape'); $arr3 = array('banana', 'kiwi', 'pear'); $result = array_intersect($arr1, $arr2, $arr3); print_r($result); //输出结果为:array('banana');
이 예에서는 $arr1, $arr2 및 $arr3이라는 3개의 배열을 정의합니다. 각 배열에는 과일 이름이 포함되어 있습니다. array_intersect($arr1, $arr2, $arr3) 함수를 사용하여 이러한 배열의 교차점을 계산하고 반환 결과를 인쇄합니다. 이 배열의 유일한 교차 요소는 "바나나"라는 것이 밝혀졌습니다.
2. 실용적인 기술
array_intersect() 함수에는 기본적인 사용법 외에도 몇 가지 실용적인 기술이 있는데, 아래에서 하나씩 소개하겠습니다.
중복 요소가 있을 수 있는 배열이 있는 경우 array_unique() 함수를 사용하여 중복 요소를 제거할 수 있습니다. 그러나 중복된 요소만 유지하고 다른 요소를 제거하려면 array_intersect() 함수를 사용할 수 있습니다. 예:
$arr1 = array('apple', 'banana', 'orange', 'pear', 'banana', 'kiwi'); $arr2 = array_unique($arr1); //去除重复元素 $result = array_intersect($arr1, $arr2); //返回重复元素 print_r($result); //输出结果为:array('banana');
이 예에서는 중복 요소가 포함된 $arr1 배열을 정의하고 먼저 array_unique() 함수를 사용하여 이러한 중복 요소를 제거한 다음 array_intersect() 함수를 사용하여 $arr1과 $의 교차점을 계산합니다. arr2. 결과는 배열에 반복되는 요소 "바나나"만 포함합니다.
array_intersect() 함수는 여러 배열을 매개변수로 허용할 수 있으므로 여러 배열의 교차점을 비교할 때 편리합니다. 예를 들어, array_intersect($arr1, $arr2, $arr3)를 사용하여 3개 배열 간의 교차점을 계산할 수 있지만, 비교할 배열이 여러 개인 경우에는 어떻게 될까요? 이는 아래와 같이 for 루프를 사용하여 달성할 수 있습니다.
$arr1 = array('apple', 'banana', 'pear'); $arr2 = array('banana', 'orange', 'grape'); $arr3 = array('banana', 'kiwi', 'pear'); $arr4 = array('banana', 'cherry', 'pear'); $cnt = count(func_get_args()); //获取参数个数 for ($i = 1; $i < $cnt; $i++) { ${"arr" . $i} = array_intersect(${"arr" . ($i-1)}, ${"arr" . $i}); //比较数组交集 } print_r($arr1); //输出结果为:array('banana');
이 예에서는 $arr1, $arr2, $arr3 및 $arr4라는 4개의 배열을 정의합니다. 각 배열에는 과일 이름이 포함되어 있습니다. for 루프를 사용하여 이러한 배열의 교차점을 비교하고 결과를 동일한 배열에 저장합니다. 마지막으로 교차 요소를 포함하는 배열을 인쇄하고 결과에는 "바나나"만 포함됩니다. 이 예는 여러 배열을 비교할 때 array_intersect() 함수의 편리함을 보여줍니다.
기본적으로 array_intersect() 함수는 원래 배열의 키 이름을 유지합니다. 그러나 키 이름을 강제로 재설정하려면 array_values() 함수를 사용할 수 있습니다. 예:
$arr1 = array('name' => 'Tom', 'age' => 32); $arr2 = array('name' => 'Jerry', 'age' => 25); $arr3 = array_intersect($arr1, $arr2); print_r($arr3); //输出结果为:array('name' => 'Jerry', 'age' => 25); $arr4 = array_values(array_intersect($arr1, $arr2)); print_r($arr4); //输出结果为:array('Jerry', 25);
이 예에서는 몇 가지 기본 정보가 포함된 두 개의 연관 배열 $arr1 및 $arr2를 정의합니다. array_intersect() 함수를 사용하여 두 배열의 교차점을 비교하고 원래 키 이름을 보존한 다음 다시 print_r() 함수를 사용하여 결과를 인쇄합니다. 이제 출력에는 원래 키 이름 "name" 및 "age"가 포함됩니다. 다음으로 array_values() 함수를 사용하여 원래 키를 제거하고 교차 요소만 남겨두고 결과를 인쇄합니다. 현재 출력 결과에는 교차 요소 "Jerry"와 "25"만 포함되어 있어 array_values() 함수가 원래 키 이름을 제거했음을 나타냅니다.
array_intersect() 함수는 다차원 배열의 비교에도 적합합니다. 예를 들어, array_intersect($arr1, $arr2, $arr3)를 사용하여 여러 1차원 배열의 교집합을 비교하거나 array_intersect($arr1[0], $arr2[0], $arr3[0)을 사용할 수 있습니다. ]) 다차원 배열의 교집합을 비교합니다. 예:
$arr1 = array( array('name' => 'Tom', 'age' => 32), array('name' => 'Jerry', 'age' => 25), array('name' => 'Mickey', 'age' => 28) ); $arr2 = array( array('name' => 'Jerry', 'age' => 25), array('name' => 'Mickey', 'age' => 28), array('name' => 'Donald', 'age' => 30) ); $arr3 = array( array('name' => 'Tom', 'age' => 32), array('name' => 'Jerry', 'age' => 25), array('name' => 'Mickey', 'age' => 28) ); $arr4 = array_intersect($arr1[0], $arr2[0], $arr3[0]); print_r($arr4); //输出结果为:array('name' => 'Jerry', 'age' => 25);
이 예에서는 $arr1, $arr2, $arr3 및 $arr4라는 4개의 다차원 배열을 정의합니다. array_intersect() 함수를 사용하여 이러한 배열의 교차점을 비교하면 결과에는 "Jerry"에 대한 정보만 포함됩니다. 이 예는 array_intersect() 함수가 다차원 배열 비교에 적합하고 구문이 매우 간단하다는 것을 보여줍니다.
3. 요약
array_intersect() 함수는 PHP 개발에서 매우 실용적입니다. 여러 배열 간의 교차점을 쉽게 비교하고 반복되는 요소를 반환할 수 있습니다. 이 기사에서는 이 함수의 기본 사용법과 중복 요소 제거, 여러 배열의 교집합 비교, 원래 배열 키 이름 유지, 다차원 배열의 교집합 비교 등 몇 가지 실용적인 기술을 소개합니다. 이러한 기술은 PHP 개발자가 array_intersect() 함수를 더 잘 활용하고 개발 효율성과 코드 품질을 향상시키는 데 도움이 될 수 있습니다.
위 내용은 PHP 함수에 대한 실용적인 팁: array_intersect()의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!