PHP 개발에서 우리는 두 개의 연관 배열을 비교하고 서로 다른 부분을 얻어야 하는 경우가 종종 있습니다. 아래에서는 이 기능을 구현하는 몇 가지 방법을 소개합니다.
방법 1: array_diff_assoc() 함수 사용
array_diff_assoc() 함수는 두 연관 배열의 키-값 쌍을 비교하고 첫 번째 배열의 모든 요소를 반환하지만 다른 배열은 반환하지 않고 키를 유지하는 데 사용할 수 있습니다. 이름과 키 값.
코드 예:
$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000); $array2 = array("name"=>"李四", "age"=>22, "salary"=>4000); $result = array_diff_assoc($array1, $array2); print_r($result);
출력 결과는 다음과 같습니다.
Array ( [name] => 张三 [salary] => 3000 )
보시다시피 결과 배열에는 배열 1에 키 이름이 "name" 및 "salary"인 키-값 쌍만 포함되어 있습니다. 배열 2 에 나타납니다.
방법 2: 사용자 정의 함수 사용
또 다른 구현 방법은 두 배열을 반복하고 키-값 쌍을 비교하여 결과 배열에 다른 부분을 추가하도록 함수를 사용자 정의하는 것입니다.
코드 예:
function array_diff_custom($array1, $array2) { $result = array(); foreach ($array1 as $key => $value) { if (!array_key_exists($key, $array2) || ($array2[$key] != $value)) { $result[$key] = $value; } } return $result; } $array1 = array("name"=>"张三", "age"=>22, "salary"=>3000); $array2 = array("name"=>"李四", "age"=>22, "salary"=>4000); $result = array_diff_custom($array1, $array2); print_r($result);
출력 결과는 다음과 같습니다.
Array ( [name] => 张三 [salary] => 3000 )
마찬가지로 결과 배열에는 배열 1에 키 이름이 "name" 및 "salary"인 키-값 쌍만 포함됩니다.
방법 3: array_udiff_assoc() 함수 사용
array_udiff_assoc() 함수는 array_diff_assoc() 함수와 유사하지만 사용자 정의 콜백 함수를 사용하여 키-값 쌍을 비교할 수 있습니다.
코드 예:
function compareByKeyValue($a, $b) { if ($a === $b) { return 0; } return ($a > $b) ? 1 : -1; } $array1 = array("name"=>"张三", "age"=>22, "salary"=>3000); $array2 = array("name"=>"李四", "age"=>22, "salary"=>4000); $result = array_udiff_assoc($array1, $array2, "compareByKeyValue"); print_r($result);
출력 결과는 다음과 같습니다.
Array ( [name] => 张三 [salary] => 3000 )
키-값 쌍이 동일한지 비교하는 콜백 함수 CompareByKeyValue()를 정의합니다. 이 함수의 이름을 array_udiff_assoc() 함수의 세 번째 인수로 전달하면 array_diff_assoc() 함수와 비슷한 효과를 얻을 수 있습니다.
요약
이 기사에서는 PHP에서 두 연관 배열의 서로 다른 부분을 얻는 세 가지 방법을 소개합니다: array_diff_assoc() 함수, 사용자 정의 함수 및 array_udiff_assoc() 함수를 사용합니다. 선택하는 방법은 특정 요구 사항과 개인 습관에 따라 다릅니다. 어느 쪽이든 연관 배열로 작업할 때 효율성과 정확성을 향상시킬 수 있습니다.
위 내용은 PHP에서 두 연관 배열의 서로 다른 부분을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!