현재 위치: > 최신 기사 목록> 배열을 Array_Map ()로 먼저 변환 한 다음 Array_Diff_Uassoc ()를 사용하여 비교하는 방법?

배열을 Array_Map ()로 먼저 변환 한 다음 Array_Diff_Uassoc ()를 사용하여 비교하는 방법?

M66 2025-05-15

php에서 array_map ()array_diff_uassoc () 는 다른 시나리오에서 배열을 처리하고 비교하는 데 도움이되는 두 가지 매우 유용한 기능입니다. 이 기사는 먼저 Array_Map ()을 사용하여 배열을 변환하는 방법을 소개 한 다음 Array_Diff_Uassoc ()를 사용하여 비교하고 구체적인 예제를 제공합니다.

1. array_map () 함수 소개

Array_Map () 함수는 콜백 함수를 통해 배열의 각 요소를 변환 할 수 있습니다. 기본 구문은 다음과 같습니다.

 array_map(callable $callback, array $array1, array ...$arrays);
  • $ 콜백 : 배열 요소를 처리하는 데 사용되는 콜백 기능.

  • $ array1, ... $ 배열 : 하나 이상의 입력 배열.

Array_Map ()는 각 요소가 $ 콜백 함수에 의해 처리 된 값인 새 배열을 반환합니다.

2. array_diff_uassoc () 함수 소개

Array_diff_uassoc () 함수는 두 개 이상의 배열을 비교하는 데 사용되며, 첫 번째 배열의 리턴 요소는 다른 배열과 비교하여 키 이름이나 값이 없습니다. 일반 array_diff () 와 달리 Array_Diff_Uassoc ()을 사용하면 키 이름을 비교하기 위해 사용자 정의 비교 함수를 제공 할 수 있습니다.

기본 구문은 다음과 같습니다.

 array_diff_uassoc(array $array1, array $array2, callable $key_compare_func);
  • $ array1 : 첫 번째 배열을 비교합니다.

  • $ array2 : 비교할 두 번째 배열.

  • $ key_compare_func : 배열 키 이름을 비교하는 데 사용되는 콜백 함수.

3. 예 : Array_Map ()Array_Diff_Uassoc ()를 조합하여 사용하십시오

이제 Array_Map ()을 사용하여 배열 값을 변환하는 방법 인 실제 예제를 살펴본 다음 array_diff_uassoc ()를 사용하여 비교해 보겠습니다.

두 제품 세트의 가격과 이름을 나타내는 두 개의 배열이 있다고 가정합니다.

 $products1 = [
    101 => "Apple",
    102 => "Banana",
    103 => "Orange"
];

$products2 = [
    101 => "Apple",
    102 => "Grapes",
    104 => "Mango"
];

// 가격
$prices1 = [
    101 => 3,
    102 => 2,
    103 => 1
];

$prices2 = [
    101 => 3,
    102 => 2.5,
    104 => 1.5
];

제품 이름을 대문자로 변환하고 Array_diff_uassoc ()를 사용하여 요소를 다른 가격과 동일한 키 이름과 두 개의 가격 배열로 비교한다고 가정 해 봅시다.

 // 제품 이름을 먼저 대문자로 변환하십시오
$products1 = array_map('strtoupper', $products1);
$products2 = array_map('strtoupper', $products2);

// 사용 array_diff_uassoc 比较가격数组(키 이름은 동일합니다,가격不同)
$price_diff = array_diff_uassoc($prices1, $prices2, function ($key1, $key2) {
    return $key1 - $key2;
});

print_r($price_diff);

4. 코드를 설명하십시오

  1. 우리는 Array_map ( 'strtoupper', $ products1)array_map ( 'strtoupper', $ product2)을 사용하여 제품 이름을 대문자로 변환합니다. 이런 식으로 우리는 이름의 비교가 어퍼 케이스와 소문자의 영향을받지 않도록 할 수 있습니다.

  2. Array_diff_uassoc ()는 가격 배열을 비교하는 데 사용됩니다. 키 이름 ( $ key1- $ key2 )을 비교하기위한 간단한 콜백 함수를 제공합니다. 두 배열의 주요 이름이 동일하지만 해당 가격이 다르면 Array_Diff_Uassoc ()는 이러한 요소를 반환합니다.

5. 출력 결과

위 코드를 실행할 때는 출력을 얻습니다.

 Array
(
    [102] => 2
    [104] => 1.5
)

이 예에서는 제품 ID 102104 의 가격이 다르므로 반품됩니다.

요약

이 기사에서는 PHP에서 Array_Map ()Array_Diff_Uassoc () 함수를 사용하는 방법에 대해 설명합니다. 먼저 Array_Map ()을 사용하여 배열에서 요소를 변환 한 다음 Array_Diff_Uassoc () 를 통해 두 개의 어레이에서 다른 키 이름과 해당 값의 요소를 비교합니다. 이런 식으로, 우리는 다양한 요구에 맞게 배열을 유연하게 처리하고 비교할 수 있습니다.


꼬리와 기사 내용 사이의 선을 구분합니다