PHP 개발에서 어레이는 일반적으로 사용되는 데이터 구조입니다. 배열을 작동 할 때는 종종 널 값 제거, 특정 조건을 충족하는 요소를 유지하는 등 배열을 필터링해야합니다. array_filter () 함수는이를 위해 특별히 설계된 매우 실용적인 도구입니다.
이 기사에서는이 기능의 실제 적용을 신속하게 마스터하는 데 도움이되는 Array_Filter () 의 기본 사용법, 매개 변수의 의미 및 몇 가지 일반적인 사용 시나리오에 대해 자세히 설명합니다.
Array_Filter () 는 PHP의 내장 기능 중 하나입니다. 그 목적은 콜백 함수를 사용하여 배열에서 각 요소를 필터링하여 리턴 값의 요소 만 남겨 두는 것 입니다. 구문은 다음과 같습니다.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ 배열 : 원래 배열 필터.
$ 콜백 (선택 사항) : 요소가 유지되는지 여부를 결정하는 데 사용되는 콜백 함수. NULL 이면 기본 제거 값은 False , NULL , 빈 문자열 '' , 번호 0, 빈 배열 [] 및 기타 "False 값"입니다.
$ mode (php 7.4+) : 콜백 함수로 전달 된 컨텐츠가 값, 키 또는 키 값 쌍인지 여부를 지정합니다.
이것은 형태 데이터 또는 구성 항목을 청소하는 데 적합한 가장 일반적인 사용 방법입니다.
$data = ["apple", "", null, 0, "banana", false];
$filtered = array_filter($data);
print_r($filtered);
출력 결과 :
Array
(
[0] => apple
[4] => banana
)
콜백 함수가 전달되지 않으면 Array_Filter ()는 기본적으로 "false value"를 제거합니다.
예를 들어, 배열에서 길이가 5보다 큰 줄 만 유지합니다.
$words = ["apple", "strawberry", "banana", "kiwi"];
$filtered = array_filter($words, function($word) {
return strlen($word) > 5;
});
print_r($filtered);
산출:
Array
(
[1] => strawberry
[2] => banana
)
PHP 7.4부터 세 번째 매개 변수 $ 모드를 통해 필터링 컨텐츠를 제어 할 수 있습니다.
$data = [
'a' => 100,
'b' => 200,
'x' => 300,
];
$filtered = array_filter($data, function($key) {
return $key === 'x';
}, ARRAY_FILTER_USE_KEY);
print_r($filtered);
산출:
Array
(
[x] => 300
)
$_POST = [
'username' => 'alice',
'email' => '',
'age' => null,
];
$clean_data = array_filter($_POST);
이것은 널 필드를 빠르게 제거 할 수 있으며 유효한 데이터 만 유지됩니다.
$users = [
['name' => 'Tom', 'active' => true],
['name' => 'Jerry', 'active' => false],
['name' => 'Spike', 'active' => true],
];
$active_users = array_filter($users, function($user) {
return $user['active'];
});
print_r($active_users);
$urls = [
'https://m66.net/home',
'invalid-url',
'http://m66.net/contact',
'',
];
$valid_urls = array_filter($urls, function($url) {
return filter_var($url, FILTER_VALIDATE_URL);
});
print_r($valid_urls);
Array_Filter ()를 사용한 후에는 원래 배열의 키 이름이 재설정되지 않습니다 (재설정 해야하는 경우 Array_Values () 와 함께 사용할 수 있음).
기조 행사로 필터링 해야하는 경우 PHP 버전> = 7.4를 확인하고 array_filter_use_key를 사용하십시오.
콜백 함수는 요소가 유지되는지 여부를 결정하기 위해 true 또는 false를 반환해야합니다.