현재 위치: > 최신 기사 목록> array_filter ()를 사용하여 부울 값으로 요소를 필터링하십시오

array_filter ()를 사용하여 부울 값으로 요소를 필터링하십시오

M66 2025-06-05

PHP 개발 중에 처리 어레이는 매우 일반적인 요구 사항입니다. 일반적인 시나리오 중 하나는 다음과 같습니다. False , 0 , "" (빈 문자열), NULL , 빈 배열 등과 같은 부울 값 False가 있는 배열에서 요소를 제거하려고합니다. 현재 Array_Filter () 함수는 매우 유용한 도구입니다.

Array_Filter () 란 무엇입니까?

Array_Filter () 는 PHP의 내장 기능입니다. 기능은 콜백 함수로 배열의 각 요소를 필터링하고 콜백 함수에 의해 테스트 된 모든 요소의 새로운 배열을 반환하는 것입니다. 콜백 함수가 전달되지 않으면 부울 값으로 모든 요소를 ​​자동으로 제거합니다.

문법:

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $ 배열 : 원래 배열 필터

  • $ 콜백 (선택 사항) : 사용자 정의 콜백 함수

  • $ 모드 (선택 사항) : 키 또는 값이 콜백 함수로 전달되는지 또는 둘 다를 제어 할 수 있습니다.

예 : 부울 값이 false로 요소를 제거하십시오

콜백 함수를 전달하지 않으면 Array_Filter ()는 기본적으로 배열에서 False 와 동등한 모든 값을 제거합니다.

샘플 코드 :

 $data = [
    'name' => 'John',
    'age' => 0,
    'email' => '',
    'is_active' => false,
    'preferences' => [],
    'bio' => null,
    'website' => 'https://m66.net/profile/john'
];

$filtered = array_filter($data);

print_r($filtered);

출력 결과 :

 Array
(
    [name] => John
    [website] => https://m66.net/profile/john
)

보시다시피, 0 , '' , false , null , [] 는 모두 필터링되며 부울 값의 요소 만 사실 만 남겨 둡니다.

"거짓 값"을 걸러 내고 싶다면 어떻게해야합니까?

예를 들어, falsenull 만 제거하고 0''를 유지하려면 콜백 함수를 사용자 정의해야합니다.

 $filtered = array_filter($data, function ($value) {
    return $value !== false && $value !== null;
});

print_r($filtered);

이를 통해 필터링 규칙을보다 정확하게 제어 할 수 있습니다.