데이터 정리는 데이터 분석 및 처리의 중요한 부분이며 데이터의 불일치, 오류 또는 복제를 제거하는 것을 목표로합니다. PHP에는 데이터 정리를 구현하는 데 도움이되는 많은 기능이 있습니다. 오늘날 우리는 Array_diff_assoc () 와 Array_filter () 의 두 가지 함수에 중점을두고 데이터 청소에서 역할을하는 방법과 그 차이점에 대해 논의 할 것입니다.
Array_Diff_Assoc () 함수는 둘 이상의 배열 간의 차이를 비교하고 첫 번째 배열에 포함 된 요소를 반환하지만 다른 배열에는 그렇지 않습니다. Array_Diff () 와 달리 Array_Diff_Assoc ()는 배열의 키 이름을 고려합니다 (키 이름도 비교에 참여 함). 구문은 다음과 같습니다.
array_diff_assoc(array $array1, array $array2, array ...$arrays): array
우리가 두 개의 배열이 있고 첫 번째 배열에는 존재하지만 두 번째 배열에서는 존재하지 않는 요소를 찾고 싶다고 가정 해 봅시다.
$array1 = [
"a" => 1,
"b" => 2,
"c" => 3
];
$array2 = [
"a" => 1,
"b" => 3,
"d" => 4
];
$result = array_diff_assoc($array1, $array2);
print_r($result);
출력 결과 :
Array
(
[b] => 2
[c] => 3
)
이 예에서 Array_Diff_Assoc ()는 Array $ array1 및 $ array2 를 비교하고 키 이름과 값이 다른 요소를 반환합니다. 이 예에서, 배열 $ array1 의 요소 "b"=> 2 및 "c"=> 3 은 Array $ array2 에 있지 않으므로 다음 배열이 반환됩니다.
일부 데이터를 정리해야 할 때 Array_Diff_Assoc ()은 여러 데이터 소스에 존재하지만 일관성이없는 일부 데이터를 찾는 데 도움이 될 수 있습니다. 예를 들어, 두 가지 데이터 소스가 있다고 가정하고 Array1은 현재 데이터베이스 레코드를 나타내고 Array2는 외부 API에서 가져온 데이터를 나타냅니다. Array_Diff_Assoc ()을 사용하여 현재 데이터에 일치하지 않는 레코드를 찾을 수 있습니다.
Array_Filter () 함수는 지정된 조건을 충족하는 배열 및 반환 요소의 요소를 필터링하는 데 사용됩니다. 구문은 다음과 같습니다.
array_filter(array $array, callable $callback = null, int $mode = 0): array
$ 배열 : 필터 배열.
$ 콜백 : 각 요소가 조건을 충족하는지 여부를 결정하는 데 사용되는 콜백 기능. 콜백 함수가 true를 반환하면 결과 배열에 요소가 유지됩니다.
$ 모드 : 배열에서 키 이름을 처리하는 방법을 결정합니다. 기본값은 0이므로 키 이름이 변경되지 않았 음을 의미합니다.
여러 숫자가있는 배열이 있고 0 값을 제거하려고한다고 가정 해 봅시다.
$array = [1, 0, 2, 3, 0, 4];
$result = array_filter($array, function($value) {
return $value !== 0;
});
print_r($result);
출력 결과 :
Array
(
[0] => 1
[2] => 2
[3] => 3
[5] => 4
)
이 예에서 Array_Filter ()는 배열에서 값이 0 인 모든 요소를 제거하고 결과 리턴은 값이없는 배열입니다.
Array_Filter () 는 데이터 청소의 일반적인 도구이며, 특히 NULL, 0 또는 비 준수 항을 삭제하는 데 적합합니다. 예를 들어, array_filter ()를 사용하여 일부 필드가 비어있을 수있는 사용자가 제출 한 양식에서 일부 데이터를 수집한다고 가정하면이 유효하지 않은 데이터를 제거 할 수 있습니다.
Array_Diff_Assoc () 및 Array_Filter () 는 배열 처리에 모두 사용되지만 사용 시나리오 및 기능에 상당한 차이가 있습니다.
기능적 차이 :
Array_Diff_Assoc () 는 주로 두 개 이상의 배열을 비교하여 차이, 특히 값과 키 이름의 차이를 찾는 데 사용됩니다.
Array_Filter ()는 지정된 조건을 기반으로 배열에서 요소를 필터링하고 조건을 충족하지 않는 항목을 삭제하는 데 사용됩니다.
응용 프로그램 시나리오 :
Array_diff_assoc () 은 차이를 비교하고 찾는 데 더 적합하며 종종 여러 데이터 소스의 상황을 다루는 데 사용됩니다.
Array_Filter () 는 데이터 필터링에 더 적합하며 종종 배열의 기준을 충족하지 않는 유효하지 않은 데이터 또는 항목을 청소하는 데 사용됩니다.
콜백 함수 :
Array_Filter ()는 들어오는 콜백 함수가 필터링 규칙을 정의 할 수 있도록 허용하지만 Array_Diff_Assoc ()는 콜백 함수를 지원하지 않으며 배열의 값과 키 이름을 직접 비교합니다.
배열 키 이름 처리 :
Array_Diff_Assoc ()는 배열의 키 이름과 해당 값을 고려합니다.
Array_Filter ()는 기본적으로 원래 배열의 키 이름을 유지하지만 $ 모드 매개 변수를 사용하여 키 이름을 재구성할지 여부를 제어 할 수 있습니다.
중복 데이터와 원치 않는 요소가 포함 된 두 개의 배열이 있다고 가정하여 데이터 정리를하고 싶습니다.
$array1 = [
"a" => 1,
"b" => 0,
"c" => 2
];
$array2 = [
"a" => 1,
"b" => 0,
"d" => 3
];
// 사용 array_diff_assoc() 두 배열의 비교,일관되지 않은 요소를 찾으십시오
$diff = array_diff_assoc($array1, $array2);
print_r($diff);
// 사용 array_filter() 필터 값은입니다 0 강요
$filtered = array_filter($array1, function($value) {
return $value !== 0;
});
print_r($filtered);
출력 결과 :
Array
(
[b] => 0
[c] => 2
)
Array
(
[a] => 1
[c] => 2
)
Array_Diff_Assoc () 및 Array_Filter ()를 사용하면 데이터 청소를 효율적으로 수행 할 수 있습니다. Array_Diff_Assoc () 는 특히 주요 이름과 값을 모두 고려해야 할 때 배열 간의 차이를 비교하는 데 더 적합합니다. Array_Filter ()는 널 값 제거 또는 유효하지 않은 항목과 같은 특정 조건을 충족하지 않는 데이터를 필터링하는 데 적합합니다.
실제 응용 프로그램에서 선택할 수있는 기능은 특정 요구에 따라 다릅니다. 차이점을 이해 하고이 두 기능을 사용하는 방법을 마스터하면 데이터를보다 효율적으로 정리하고 처리하는 데 도움이 될 수 있습니다.