PHP 프로그래밍에서 2차원 배열은 자주 사용되는 데이터 구조 중 하나입니다. 2차원 배열에서 가장 일반적으로 사용되는 연산 중 하나는 교차점을 찾는 것입니다. 그렇다면 PHP에서 2차원 배열의 교차점을 찾는 방법은 무엇일까요? 구체적인 구현을 살펴보겠습니다.
1. array_intersect 함수 사용
PHP는 두 배열의 교차점을 찾는 데 사용할 수 있는 내장 함수 array_intersect()를 제공합니다. 이 함수는 여러 배열을 매개변수로 사용할 수 있습니다. 2차원 배열의 경우 array_map 함수를 사용하여 연관 배열을 인덱스 배열로 변환해야 합니다.
샘플 코드는 다음과 같습니다.
$arr1 = array( array('id'=>1,'name'=>'Tom'), array('id'=>2,'name'=>'Jack'), array('id'=>3,'name'=>'Lucy'), ); $arr2 = array( array('id'=>2,'name'=>'Jack'), array('id'=>4,'name'=>'Mike'), array('id'=>5,'name'=>'Lily'), ); $intersect = call_user_func_array('array_intersect', array_map(function($ar){return array_values($ar);},array($arr1, $arr2))); var_dump($intersect);
출력 결과는 다음과 같습니다.
array(1) { [0]=> array(2) { ["id"]=> int(2) ["name"]=> string(4) "Jack" } }
2. 사용자 정의 함수 사용
내장 함수 외에도 사용자 정의 함수를 사용하여 2차원 교차 기능을 구현할 수도 있습니다. 배열. 다음은 간단한 구현입니다.
/** * 求二维数组交集 * @param $arr1 * @param $arr2 * @return array */ function arr_intersect($arr1, $arr2){ $intersect = array(); foreach($arr1 as $value1){ foreach($arr2 as $value2){ if($value1 == $value2){ $intersect[] = $value1; break; } } } return $intersect; } $arr1 = array( array('id'=>1,'name'=>'Tom'), array('id'=>2,'name'=>'Jack'), array('id'=>3,'name'=>'Lucy'), ); $arr2 = array( array('id'=>2,'name'=>'Jack'), array('id'=>4,'name'=>'Mike'), array('id'=>5,'name'=>'Lily'), ); $intersect = arr_intersect($arr1, $arr2); var_dump($intersect);
출력 결과는 다음과 같습니다.
array(1) { [0]=> array(2) { ["id"]=> int(2) ["name"]=> string(4) "Jack" } }
Summary
2차원 배열의 교차 연산은 PHP 프로그래밍에서 매우 일반적입니다. PHP에 내장된 array_intersect() 함수나 사용자 정의 함수를 사용하면 2차원 배열의 교차 함수를 쉽게 구현할 수 있습니다. 실제 프로젝트에서는 빠르고 안정적인 교차 알고리즘을 구현하기 위해 특정 시나리오에 따라 최적의 방법을 선택해야 합니다.
위 내용은 PHP에서 2차원 배열의 교차점 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!