Array_Count_Values는 배열에서 모든 값의 발생 수를 계산하는 PHP에서 매우 실용적인 기능입니다. 이 함수는 배열의 키가 원래 배열의 값인 연관 배열을 반환하고 배열 값은 원래 배열에 나타나는 값의 숫자입니다.
그러나 때로는 array_count_values를 사용할 때 부울 값 ( true and false )과 null이 통계에 나타나지 않을 수 있습니다. 이게 왜? 오늘 분석합시다.
먼저 Array_Count_Values 함수의 기본 사용법을 검토하겠습니다. 이 함수는 배열을 인수로 사용하고 새로운 배열을 반환하여 배열에서 각 요소의 발생 수를 계산합니다. 예를 들어:
$arr = ['apple', 'banana', 'apple', 'orange', 'banana', 'banana'];
$result = array_count_values($arr);
print_r($result);
출력은 다음과 같습니다.
Array
(
[apple] => 2
[banana] => 3
[orange] => 1
)
다음으로 부울과 널이 무시되는 이유를 분석합니다.
PHP에서 부울 값 true and false는 정수 값 1 과 0 으로 변환되며 Array_count_values 함수에서 부울 값은 동일한 값으로 간주됩니다. 구체적으로, true and false는 동일한 1 과 0 으로 취급되며 Array_count_values는 배열을 처리 할 때 병합됩니다. 따라서 배열에 여러 부울 값이있는 경우 부울 값을 개별적으로 계산하는 대신 해당 정수 값으로 병합됩니다.
$arr = [true, false, true, 1, 0];
$result = array_count_values($arr);
print_r($result);
출력은 다음과 같습니다.
Array
(
[1] => 3
[0] => 2
)
True 와 1이 1 으로 병합되고 False 와 0 은 0 으로 병합되므로 부울 값은 별도로 계산되지 않습니다.
NULL 값의 경우 PHP는 배열을 처리 할 때 특별한 동작이 있습니다. Array_Count_Values를 사용하는 경우 NULL은 일반적으로 PHP에서 "NULL"으로 간주되므로 무시됩니다. NULL 발생 수를 계산 해야하는 경우 먼저 다른 값으로 변환하거나 다른 방식으로 처리하는 것을 고려할 수 있습니다.
예를 들어 다음 코드를 고려하십시오.
$arr = [NULL, 'apple', NULL, 'banana', 'apple'];
$result = array_count_values($arr);
print_r($result);
출력은 다음과 같습니다.
Array
(
[apple] => 2
[banana] => 1
)
보시다시피, NULL은 결과에 나타나지 않습니다. 이 문제를 해결하려면 Array_Count_Values를 호출하기 전에 모든 NULL 값을 'NULL' 과 같은 특정 값으로 바꾸고 통계를 수행 할 수 있습니다.
$arr = [NULL, 'apple', NULL, 'banana', 'apple'];
$arr = array_map(function($value) {
return $value === NULL ? 'NULL' : $value;
}, $arr);
$result = array_count_values($arr);
print_r($result);
출력은 다음과 같습니다.
Array
(
[NULL] => 2
[apple] => 2
[banana] => 1
)
이렇게하면 진술 할 때 NULL 값을 포함시킬 수 있습니다.
Array_Count_Values는 배열에서 각 값의 발생 수를 계산하는 매우 편리한 기능입니다. 그러나 PHP의 부울 및 널 값은 처리시 특별한 변환 및 무지 동작이 있기 때문에 별도로 계산되지 않습니다. 이러한 특수 사례를 처리 해야하는 경우 array_count_values를 호출하기 전에 이러한 값을 수동으로 교체하거나 변환을 입력하여 올바르게 계산할 수 있는지 확인할 수 있습니다.
최종 내용 :