현재 위치: > 최신 기사 목록> 부울과 null이 계산되지 않는 이유는 무엇입니까?

부울과 null이 계산되지 않는 이유는 무엇입니까?

M66 2025-06-07

Array_Count_Values는 배열에서 모든 값의 발생 수를 계산하는 PHP에서 매우 실용적인 기능입니다. 이 함수는 배열의 키가 원래 배열의 값인 연관 배열을 반환하고 배열 값은 원래 배열에 나타나는 값의 숫자입니다.

그러나 때로는 array_count_values를 사용할 때 부울 값 ( true and false )과 null이 통계에 나타나지 않을 수 있습니다. 이게 왜? 오늘 분석합시다.

1. array_count_values ​​함수 소개

먼저 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
)

2. 부울과 널이 무시되는 이유

다음으로 부울과 널이 무시되는 이유를 분석합니다.

부울 가치

PHP에서 부울 값 true and false는 정수 값 10 으로 변환되며 Array_count_values ​​함수에서 부울 값은 동일한 값으로 간주됩니다. 구체적으로, true and false는 동일한 10 으로 취급되며 Array_count_values는 배열을 처리 할 때 병합됩니다. 따라서 배열에 여러 부울 값이있는 경우 부울 값을 개별적으로 계산하는 대신 해당 정수 값으로 병합됩니다.

 $arr = [true, false, true, 1, 0];
$result = array_count_values($arr);
print_r($result);

출력은 다음과 같습니다.

 Array
(
    [1] => 3
    [0] => 2
)

True1이 1 으로 병합되고 False00 으로 병합되므로 부울 값은 별도로 계산되지 않습니다.

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 값을 포함시킬 수 있습니다.

3. 요약

Array_Count_Values는 배열에서 각 값의 발생 수를 계산하는 매우 편리한 기능입니다. 그러나 PHP의 부울 및 값은 처리시 특별한 변환 및 무지 동작이 있기 때문에 별도로 계산되지 않습니다. 이러한 특수 사례를 처리 해야하는 경우 array_count_values를 호출하기 전에 이러한 값을 수동으로 교체하거나 변환을 입력하여 올바르게 계산할 수 있는지 확인할 수 있습니다.

최종 내용 :