PHP에서 배열은 대량의 데이터를 저장하고 처리 할 수있는 매우 강력한 데이터 구조입니다. 때로는 배열에서 키 이름을 추출하거나 두 배열을 비교하고 비교 프로세스가 배열의 키와 값을 고려하는지 확인해야합니다. 오늘, 우리는 이것을 달성하기 위해 array_keys () 및 array_diff_uassoc ()를 사용하는 방법을 설명합니다.
Array_Keys () 함수는 배열에서 모든 키 이름을 추출하여 색인 배열로 반환 할 수 있습니다. 이 기능은 특히 배열 키에서 작동해야 할 때 매우 유용합니다. Array_Keys () 의 기본 사용 방법은 다음과 같습니다.
<?php
$arr = [
'apple' => 1,
'banana' => 2,
'cherry' => 3
];
$keys = array_keys($arr);
print_r($keys);
?>
산출:
Array
(
[0] => apple
[1] => banana
[2] => cherry
)
이 예에서는 array_keys ()가 배열 키 이름을 포함하는 배열을 반환합니다. 이 키 이름을 사용하여 필요에 따라 추가 작업을 수행 할 수 있습니다.
Array_diff_uassoc () 함수는 두 배열의 키와 값을 비교하고 사용자 정의 비교 함수를 기반으로 정제 된 비교를 만들 수 있습니다. 이 기능은 Array_Diff_Assoc () 와 유사하지만 비교 규칙을 사용자 정의 할 수 있습니다. 이 함수는 차이가 포함 된 배열을 반환합니다.
array_diff_uassoc () 의 기본 구문은 다음과 같습니다.
array_diff_uassoc(array $array1, array $array2, callable $value_comparator)
$ array1 및 $ array2 는 비교할 배열입니다.
$ value_comparator 는 배열의 값을 비교하는 사용자 정의 비교 함수입니다.
다음으로, array_keys () 와 array_diff_uassoc ()를 결합하여 정제 된 비교 작업을 구현하는 예를 살펴 보겠습니다.
<?php
// 두 배열을 정의합니다
$array1 = [
'apple' => 1,
'banana' => 2,
'cherry' => 3
];
$array2 = [
'apple' => 1,
'banana' => 3,
'cherry' => 3
];
// 사용자 정의 비교 기능:두 값이 동일한지 비교하십시오
function custom_compare($value1, $value2) {
return $value1 - $value2;
}
// 사용 array_diff_uassoc 세련된 비교를 수행하십시오
$result = array_diff_uassoc($array1, $array2, 'custom_compare');
print_r($result);
?>
산출:
Array
(
[banana] => 2
)
이 예에서는 두 개의 배열 $ array1 및 $ array2를 정의하고 custom_compare 함수를 사용하여 값을 비교합니다. Array_diff_uassoc () 은 차이, 즉 바나나 키의 값이 2 인 배열을 반환합니다. 이는 배열 에서 바나나 키 값 3 과 같지 않으므로 바나나는 차이 결과로 나열됩니다.
실제로 사용하면 특정 특정 키 이름에만 관심을 가질 수 있으며 Array_Keys () 를 통해 이러한 키 이름을 얻은 다음 Array_Diff_Uassoc ()를 사용하여 세련된 방식으로 비교합니다. 예를 들어, 우리는 Apple 과 Cherry 의 두 가지 열쇠 만 비교하려고합니다.
<?php
// 두 배열을 정의합니다
$array1 = [
'apple' => 1,
'banana' => 2,
'cherry' => 3
];
$array2 = [
'apple' => 1,
'banana' => 3,
'cherry' => 4
];
// 비교할 키 이름을 가져옵니다
$keys_to_compare = array_keys($array1); // ['apple', 'banana', 'cherry']
// 사용자 정의 비교 기능:두 값이 동일한지 비교하십시오
function custom_compare($value1, $value2) {
return $value1 - $value2;
}
// 차이를 비교하고 돌아갑니다
$result = array_diff_uassoc(
array_intersect_key($array1, array_flip($keys_to_compare)),
array_intersect_key($array2, array_flip($keys_to_compare)),
'custom_compare'
);
print_r($result);
?>
산출:
Array
(
[cherry] => 3
)
이 예에서는 먼저 Array_Keys () 를 통해 배열 $ array1 의 모든 키 이름을 추출합니다. 그런 다음 array_intersect_key () 를 통해 비교 해야하는 키 ( 사과 와 체리 ) 만 유지합니다. 마지막으로, array_diff_uassoc ()을 사용하여 미세 비교를 수행했으며 결과는 Cherry 의 값이 $ array1 에서 3 , $ array2 의 4 인 경우 체리를 반환 함을 보여 주었다.
Array_Keys () 및 Array_Diff_Uassoc ()를 결합하여 배열의 주요 값을보다 유연하게 비교할 수 있습니다. Array_Keys ()를 사용하면 배열의 키 이름을 쉽게 추출 할 수 있으며 Array_Diff_Uassoc ()는 비교 규칙을 사용자 정의하여 비교 프로세스 중에 배열의 키와 값을 고려하도록 할 수 있습니다. 이 두 기능의 사용을 마스터하면 PHP에서 어레이를 처리하는 능력을 크게 향상시킬 수 있습니다.