php에서는 Array_diff () 및 array_diff_ukey () 는 배열을 비교하는 데 사용되지만 작업 원리 및 사용 시나리오에는 명백한 차이가 있습니다. 이 기사는이 두 기능의 차이점에 대해 자세히 설명하고 사용 시나리오를 분석합니다.
Array_Diff () 함수는 두 개 이상의 배열 값을 비교하는 데 사용되며, 첫 번째 배열에는 존재하지만 다른 배열에는없는 리턴 요소가 비교됩니다. 이 함수는 키 이름에 관계없이 값에 따라 비교됩니다.
array_diff(array $array1, array $array2, array ...$arrays): array
$array1 = ["apple" => "green", "banana" => "yellow", "cherry" => "red"];
$array2 = ["banana" => "yellow", "cherry" => "blue", "grape" => "purple"];
$result = array_diff($array1, $array2);
print_r($result);
Array
(
[apple] => green
)
이 예에서 Array_Diff ()는 array $ array1 에 존재하지만 $ array2 에 존재하지 않는 요소를 반환합니다. Array_diff () 는 값 만 비교하고 키를 비교하지 않습니다.
Array_Diff () 와 달리 Array_Diff_ukey () 함수는 배열의 주요 이름을 기반으로 비교됩니다. 첫 번째 배열의 키가 다른 배열에 존재하는지 여부를 비교하고 키 이름이 일치하지 않으면 결과에서 요소 만 제외합니다.
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$array1 = ["apple" => "green", "banana" => "yellow", "cherry" => "red"];
$array2 = ["banana" => "yellow", "cherry" => "blue", "grape" => "purple"];
$result = array_diff_ukey($array1, $array2, "key_compare");
print_r($result);
function key_compare($key1, $key2) {
return $key1 === $key2 ? 0 : -1;
}
Array
(
[apple] => green
)
이 예에서는 array_diff_ukey ()를 키 이름으로 비교하여 $ array2 에 존재하지 않기 때문에 "Apple"키를 $ array1 로 반환합니다.
Array_Diff () : 배열의 값을 비교하고 키 이름을 무시하십시오. 다른 배열에 값이 존재하는지 여부에 대해서만 관심이있는 경우에 적용 할 수 있습니다.
Array_diff_ukey () : 배열의 키 이름을 비교하고 값을 무시하십시오. 값이 동일한지 여부가 아니라 키 이름의 존재에 관심이있는 경우 작동합니다.
Array_Diff () 사용 : 배열 값을 비교해야 할 때 Array_Diff ()를 사용하는 것이 더 적합한 선택입니다. 예를 들어 배열에서 고유 한 값을 찾으려면이 기능을 사용할 수 있습니다.
Array_diff_ukey () 사용 : 배열의 키 이름을 비교 해야하는 경우 array_diff_ukey ()를 사용하는 것이 더 적절합니다. 값의 내용에 관심이없는 특정 키를 필터링하는 데 도움이 될 수 있습니다. 예를 들어, 연관 배열이 있고 특정 특정 키가 다른 배열에 존재하는지 여부에 대해서만 관심을 갖는 경우이 기능을 사용할 수 있습니다.
Array_diff () 와 Array_diff_ukey () 의 주요 차이점은 다른 객체를 비교한다는 것입니다. 전자는 배열의 값 에 따라 비교되고 후자는 배열의 키 이름을 기준으로 비교됩니다. 실제 요구에 따라 올바른 기능을 선택하면 배열을보다 효율적으로 처리하는 데 도움이 될 수 있습니다.