현재 위치: > 최신 기사 목록> 빈 배열이 전달 될 때 반환 결과는 무엇입니까?

빈 배열이 전달 될 때 반환 결과는 무엇입니까?

M66 2025-06-06

PHP의 Array_diff_uassoc 함수는 사용자 정의 비교 함수를 기반으로 둘 이상의 배열을 비교하고 키 이름과 키 값을 비교하는 데 사용됩니다. 이 기능은 일반적으로 데이터를 처리 할 때 다른 배열의 키 값과 다른 배열의 부분을 결정하는 데 사용됩니다. 구문은 다음과 같습니다.

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func): array
  • $ array1 은 첫 번째 배열입니다.

  • $ array2는 비교에 사용되는 두 번째 배열입니다.

  • $ key_compare_func는 키를 비교하기위한 사용자 정의 콜백 함수입니다.

빈 배열을 통과 할 때 array_diff_uassoc 의 동작

빈 배열이 $ array1 또는 $ array2 로 전달되면 array_diff_uassoc 의 반환 값은 다음 상황에 따라 변경됩니다.

  1. $ array1은 비어 있고, $ array2는 비어 있지 않습니다 . 첫 번째 배열이 비어 있으면 함수가 빈 배열을 직접 반환합니다. 빈 배열에는 키와 값이 없으므로 다른 배열과 비교할 수 없습니다.

  2. $ array1은 비어 있지 않고 $ array2가 비어 있습니다 . 첫 번째 배열이 비어 있지 않고 두 번째 배열이 비어 있으면 결과는 첫 번째 배열의 사본입니다. 비교 과정에서 빈 배열은 비교를 위해 키 값 쌍을 제공하지 않기 때문에 첫 번째 배열의 모든 요소는 빈 배열과 다르게 간주됩니다.

  3. 두 배열 모두 비어 있습니다 . 두 배열 모두 비어 있으면 반환 값도 빈 배열입니다. 두 개의 빈 키와 값 배열 사이에는 차이가 없으므로 반환 할 수있는 차이는 없습니다.

샘플 코드

다음은 빈 배열이 전달 될 때 Array_diff_uassoc 의 동작을 보여주는 실용적인 예입니다.

 <?php
// 키 이름을 비교하는 콜백 함수를 정의하십시오
function compare_keys($a, $b) {
    return $a - $b;
}

// 예1: 첫 번째 배열은 비어 있습니다,두 번째 배열은 비어 있지 않습니다
$array1 = [];
$array2 = [1 => 'apple', 2 => 'banana'];
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
var_dump($result); // 산출: array()

// 예2: 첫 번째 배열은 비어 있지 않습니다,두 번째 배열은 비어 있습니다
$array1 = [1 => 'apple', 2 => 'banana'];
$array2 = [];
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
var_dump($result); // 산출: array(1 => 'apple', 2 => 'banana')

// 예3: 두 배열 모두 비어 있습니다
$array1 = [];
$array2 = [];
$result = array_diff_uassoc($array1, $array2, 'compare_keys');
var_dump($result); // 산출: array()
?>

요약

요약하면, 빈 배열로 전달하면 Array_Diff_Uassoc 의 동작은 매우 직관적입니다. 첫 번째 배열이 비어 있으면 함수는 빈 배열을 반환합니다. 두 번째 배열이 비어 있으면 첫 번째 배열의 사본을 반환합니다. 두 배열 모두 비어 있으면 반환 값도 빈 배열입니다.

실제 애플리케이션에서는 예상치 못한 빈 배열 상황을 피하기 위해 배열의 입력 데이터에주의를 기울여야하므로 기능 호출에 의해 반환 된 결과가 기대치를 충족시키지 못하도록해야합니다.