PHP의 배열 데이터 필터링은 특히 사용자 입력, API 데이터 또는 데이터베이스 결과를 처리 할 때 매우 일반적인 작업입니다. Array_Filter () 는 PHP가 제공하는 강력한 기능으로 익명 함수 (클로저)를 결합하여 유연하고 효율적인 데이터 필터링을 달성 할 수 있습니다. 이 기사를 사용하면 다양한 필터링 로직을 구현하는 방법을 이해하기 위해 단계별로 진행됩니다.
Array_Filter ()는 콜백 함수 (콜백)를 통해 배열의 각 요소를 판단하고 조건을 충족하는 요소로 구성된 새 배열을 반환하는 내장 PHP 함수입니다.
기본 구문은 다음과 같습니다.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ 배열 : 필터 배열.
$ 콜백 : 각 요소에 사용되는 콜백 기능. 생략하면 거짓 값이있는 요소가 기본적으로 제거됩니다.
$ 모드 : 선택적 매개 변수를 매개 변수로 전달할지 여부를 결정합니다.
클로저라고도하는 익명 함수는 PHP에 이름이없는 함수이며 임시 로직 처리 중에 사용하기에 매우 적합합니다. 구문은 다음과 같습니다.
$filterFunc = function($value) {
return $value > 10;
};
이 유형의 함수는 일반적으로 더 세분화 된 데이터 제어를 달성하기 위해 Array_Filter () 와 함께 사용됩니다.
$numbers = [4, 15, 9, 23, 5];
$filtered = array_filter($numbers, function($value) {
return $value > 10;
});
print_r($filtered);
산출:
Array
(
[1] => 15
[3] => 23
)
당신은 10보다 큰 숫자 만 유지된다는 것을 알 수 있습니다.
$formData = [
'name' => 'Alice',
'email' => '',
'age' => null,
'city' => 'Beijing'
];
$cleanData = array_filter($formData, function($value) {
return !empty($value);
});
print_r($cleanData);
산출:
Array
(
[name] => Alice
[city] => Beijing
)
$data = [
'user_id' => 101,
'user_name' => 'Bob',
'admin_role' => true,
'timestamp' => 1681920000
];
$filtered = array_filter($data, function($value, $key) {
return str_contains($key, 'user');
}, ARRAY_FILTER_USE_BOTH);
print_r($filtered);
산출:
Array
(
[user_id] => 101
[user_name] => Bob
)
데이터 소스 (예 : https://m66.net/api/posts )에서 다음 배열을 받고 있다고 가정 해보십시오.
$posts = [
['title' => 'Hello World', 'url' => 'https://m66.net/post/1', 'published' => true],
['title' => 'Draft Post', 'url' => 'https://m66.net/post/2', 'published' => false],
['title' => 'PHP Tips', 'url' => 'https://m66.net/post/3', 'published' => true],
];
Array_Filter ()를 사용하여 게시 된 기사 만 보관할 수 있습니다.
$publishedPosts = array_filter($posts, function($post) {
return $post['published'] === true;
});
print_r($publishedPosts);
Array_Filter ()를 사용하여 익명 기능과 결합하면 다양한 맞춤형 데이터 필터링 요구를 쉽게 달성 할 수 있습니다. 숫자 값, 문자열 또는 다차원 배열을 필터링하든, 유연하게 처리하기 위해 적절한 폐쇄 기능 만 전달하면됩니다.
제안:
사용자 데이터를 처리 할 때 필터를 사용하여 원치 않는 콘텐츠를 지우십시오.
익명 기능을 사용하여 코드 가독성과 모듈성을 최대한 개선하십시오.
원래 배열과 일치하는 키 이름을 유지하려면 Array_Filter_use_Both 와 함께 사용할 수 있습니다.