PHP 개발 중에 처리 어레이는 매우 일반적인 요구 사항입니다. 일반적인 시나리오 중 하나는 다음과 같습니다. False , 0 , "" (빈 문자열), NULL , 빈 배열 등과 같은 부울 값 False가 있는 배열에서 요소를 제거하려고합니다. 현재 Array_Filter () 함수는 매우 유용한 도구입니다.
Array_Filter () 는 PHP의 내장 기능입니다. 기능은 콜백 함수로 배열의 각 요소를 필터링하고 콜백 함수에 의해 테스트 된 모든 요소의 새로운 배열을 반환하는 것입니다. 콜백 함수가 전달되지 않으면 부울 값으로 모든 요소를 자동으로 제거합니다.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ 배열 : 원래 배열 필터
$ 콜백 (선택 사항) : 사용자 정의 콜백 함수
$ 모드 (선택 사항) : 키 또는 값이 콜백 함수로 전달되는지 또는 둘 다를 제어 할 수 있습니다.
콜백 함수를 전달하지 않으면 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 , [] 는 모두 필터링되며 부울 값의 요소 만 사실 만 남겨 둡니다.
예를 들어, false 및 null 만 제거하고 0 및 ''를 유지하려면 콜백 함수를 사용자 정의해야합니다.
$filtered = array_filter($data, function ($value) {
return $value !== false && $value !== null;
});
print_r($filtered);
이를 통해 필터링 규칙을보다 정확하게 제어 할 수 있습니다.