매일 PHP 개발에서 데이터 필터링은 특히 배열 데이터 구조의 일반적인 작업입니다. Array_Filter () 는 PHP가 제공하는 강력한 기능으로 배열 요소를 빠르게 필터링 할 수 있습니다. 그러나 실제 프로젝트에서 필터링 규칙은 종종 코드로 작성되지 않지만 외부 구성 (예 : 데이터베이스, 구성 파일 또는 원격 인터페이스)에서 나옵니다. 이 기사는 Array_Filter ()를 외부 구성과 결합하여 동적 데이터 필터링 메커니즘을 구현하는 방법을 소개합니다.
Array_Filter () 의 함수는 배열의 각 요소를 반복하고 콜백 함수를 통해 요소가 유지되는지 여부를 결정하는 것입니다. 샘플 코드는 다음과 같습니다.
$data = [1, 2, 3, 4, 5];
// 숫자 만 유지됩니다
$result = array_filter($data, function ($item) {
return $item % 2 === 0;
});
print_r($result);
// 산출:Array ( [1] => 2 [3] => 4 )
기본적으로 콜백 함수가 전달되지 않으면 Array_Filter ()는 배열에서 "False 값"을 걸러냅니다 (예 : 0 , NULL , FALSE , 빈 문자 등).
사용자 데이터 배열이 있다고 가정하고 각 사용자는 연령 및 상태 필드를 가지고 있다고 가정합니다. 예를 들어 외부 구성을 기반으로 필터링 조건을 동적으로 설정하려고합니다.
$users = [
['name' => 'Alice', 'age' => 25, 'status' => 'active'],
['name' => 'Bob', 'age' => 30, 'status' => 'inactive'],
['name' => 'Charlie', 'age' => 22, 'status' => 'active'],
];
외부 구성은 구성 파일 또는 원격 요청에서 다음과 같은 원격 요청에서 나올 수 있습니다.
$config = [
'min_age' => 23,
'status' => 'active',
];
우리는 다음과 같이 조합하여 사용할 수 있습니다.
function filterUsers(array $users, array $config): array
{
return array_filter($users, function ($user) use ($config) {
if (isset($config['min_age']) && $user['age'] < $config['min_age']) {
return false;
}
if (isset($config['status']) && $user['status'] !== $config['status']) {
return false;
}
return true;
});
}
$filteredUsers = filterUsers($users, $config);
print_r($filteredUsers);
출력 결과 :
Array
(
[0] => Array
(
[name] => Alice
[age] => 25
[status] => active
)
)
구성이 원격 인터페이스에서 나온 경우 : 예를 들어
$configUrl = 'https://api.m66.net/user_filter_config';
// 구성을 얻으려면 시뮬레이션하십시오
$configJson = file_get_contents($configUrl);
$config = json_decode($configJson, true);
그런 다음 이전에 정의 된 Filterusers () 함수로 전달하여 동적 필터링을 구현하십시오.
참고 : 실제로 사용하면 프로그램 중단을 피하기 위해 네트워크 예외 및 JSON 구문 분석 오류를 처리해야합니다.
외부 구성과 함께 Array_Filter ()를 사용하면 매우 유연한 데이터 필터링 로직을 구현할 수 있습니다. 이 방법은 사용자 권한 제어, 컨텐츠 디스플레이 필터링, 로그 필터링 등과 같은 다양한 비즈니스 시나리오에 적합합니다.이 패턴을 마스터하면 코드가보다 구성 가능하고 유지 관리가 쉽고 확장 가능할 수 있습니다.