php에서 array_diff () 및 array_diff_assoc () 는 배열을 비교하는 데 일반적으로 사용되는 두 가지 함수입니다. 그들의 기능은 응용 프로그램 시나리오의 기능과 다소 유사하지만 특정 비교에는 중요한 차이가 있습니다. 이 두 기능의 차이를 이해하면 실제 개발에서 배열 데이터를보다 정확하게 처리하는 데 도움이됩니다.
Array_diff ()
Array_diff ()는 첫 번째 배열에서 둘 이상의 배열과 반환 값을 비교하지만 다른 배열에서는 비교하는 데 사용됩니다. 키 이름에 관계없이 값을 기준으로 비교합니다.
문법:
array_diff(array $array1, array $array2, array ...$arrays): array
예:
$array1 = [1, 2, 3, 4];
$array2 = [2, 3, 5];
$result = array_diff($array1, $array2);
print_r($result);
산출:
Array
(
[0] => 1
[3] => 4
)
이 예에서 Array_Diff ()는 $ array1 및 $ array2 의 값을 비교하고 결과는 $ array1 에 존재하지만 $ array2 에는 존재하지 않는 값입니다.
Array_Diff_Assoc ()
Array_Diff_Assoc () 의 함수는 Array_Diff () 와 유사하지만 비교할 때 값을 고려할뿐만 아니라 키 이름 (키)도 비교합니다. 즉, 값과 키 이름이 동일하지 않은 요소만이 다르게 간주됩니다.
문법:
array_diff_assoc(array $array1, array $array2, array ...$arrays): array
예:
$array1 = [1 => "apple", 2 => "banana", 3 => "cherry"];
$array2 = [1 => "apple", 2 => "grape"];
$result = array_diff_assoc($array1, $array2);
print_r($result);
산출:
Array
(
[2] => banana
[3] => cherry
)
이 예에서 Array_Diff_Assoc ()는 $ array1 및 $ array2 의 값과 키 이름을 비교합니다. 1 => "Apple" 은 두 배열 모두에서 동일하지만 Array_Diff_Assoc () 는이 요소를 무시하고 키 이름과 해당 값이 다른 요소를 계속 찾습니다. 따라서 2 => "바나나" 및 3 => "체리" 는 다른 것으로 간주됩니다.
기능 | 비교 표준 | 해당 시나리오 |
---|---|---|
Array_diff () | 값 만 비교하면 키 이름이 고려되지 않습니다 | 값을 기준으로 비교가 필요한 시나리오와 배열 키 이름의 차이점을 무시합니다. |
Array_Diff_Assoc () | 값과 키 이름을 비교하십시오 | 배열 구조 무결성 비교와 같은 값과 키 이름을 비교 해야하는 시나리오 또는 키 이름이 일관성이 필요한 시나리오 |
Array_Diff ()를 사용한 시나리오 :
배열 값에만 관심이 있고 키 이름을 신경 쓰지 않으면 Array_Diff ()를 사용할 수 있습니다. 예를 들어, 다른 제품 ID를 포함하는 두 개의 목록이 있으며, 배열의 위치 나 키 이름에 관한 것이 아니라 제품 ID가 일관되는지 여부에만 관심이 있습니다.
샘플 시나리오 :
예를 들어, 두 제품 목록에서 겹치지 않는 제품 ID를 찾으려면 코드는 다음과 같습니다.
$list1 = [101, 102, 103, 104];
$list2 = [102, 104, 105];
$unique_ids = array_diff($list1, $list2);
print_r($unique_ids);
산출:
Array
(
[0] => 101
[2] => 103
)
Array_Diff_Assoc ()를 사용한 시나리오 :
배열의 값을 비교할뿐만 아니라 키 이름의 일관성을 보장 해야하는 경우 array_diff_assoc ()를 사용할 수 있습니다. 예를 들어 두 사용자 목록에서 키 이름은 사용자의 ID를 나타내고 값은 사용자의 정보를 나타냅니다. 각 사용자의 ID와 해당 정보가 일관되어 있는지 확인해야합니다.
샘플 시나리오 :
예를 들어, 두 개의 사용자 정보 배열을 비교하고 키 이름과 값이 다른 항목을 찾으려고합니다.
$users1 = [1 => "Alice", 2 => "Bob", 3 => "Charlie"];
$users2 = [1 => "Alice", 2 => "Eve", 4 => "David"];
$diff_users = array_diff_assoc($users1, $users2);
print_r($diff_users);
산출:
Array
(
[2] => Bob
[3] => Charlie
)
Array_Diff ()는 키 이름의 차이를 무시하고 배열 값이 동일한지 여부에 대해서만 관심이있는 시나리오에 적합합니다.
Key 이름과 값이 일관된 지 여부를 고려할 필요가있을 때 Array_Diff_Assoc () 가 더 적용 할 수 있습니다.
이 두 기능 간의 차이와 사용 시나리오를 이해하면 실제 애플리케이션에서 불필요한 오류를 피하기 위해 배열 데이터를 처리하기 위해 개발에서 가장 적합한 기능을 선택하는 데 도움이됩니다.