현재 위치: > 최신 기사 목록> Array_Filter ()를 사용하여 외부 구성으로 동적 필터링을 구현하십시오

Array_Filter ()를 사용하여 외부 구성으로 동적 필터링을 구현하십시오

M66 2025-05-14

매일 PHP 개발에서 데이터 필터링은 특히 배열 데이터 구조의 일반적인 작업입니다. Array_Filter () 는 PHP가 제공하는 강력한 기능으로 배열 요소를 빠르게 필터링 할 수 있습니다. 그러나 실제 프로젝트에서 필터링 규칙은 종종 코드로 작성되지 않지만 외부 구성 (예 : 데이터베이스, 구성 파일 또는 원격 인터페이스)에서 나옵니다. 이 기사는 Array_Filter ()를 외부 구성과 결합하여 동적 데이터 필터링 메커니즘을 구현하는 방법을 소개합니다.

1. 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 , 빈 문자 등).

2. 외부 구성 시나리오의 예

사용자 데이터 배열이 있다고 가정하고 각 사용자는 연령상태 필드를 가지고 있다고 가정합니다. 예를 들어 외부 구성을 기반으로 필터링 조건을 동적으로 설정하려고합니다.

 $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',
];

3. Array_Filter () 와 구성 동적 필터링 결합

우리는 다음과 같이 조합하여 사용할 수 있습니다.

 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
        )
)

4. 원격 인터페이스에서 동적으로 구성을 얻습니다

구성이 원격 인터페이스에서 나온 경우 : 예를 들어

 $configUrl = 'https://api.m66.net/user_filter_config';

// 구성을 얻으려면 시뮬레이션하십시오
$configJson = file_get_contents($configUrl);
$config = json_decode($configJson, true);

그런 다음 이전에 정의 된 Filterusers () 함수로 전달하여 동적 필터링을 구현하십시오.

참고 : 실제로 사용하면 프로그램 중단을 피하기 위해 네트워크 예외 및 JSON 구문 분석 오류를 처리해야합니다.

5. 요약

외부 구성과 함께 Array_Filter ()를 사용하면 매우 유연한 데이터 필터링 로직을 구현할 수 있습니다. 이 방법은 사용자 권한 제어, 컨텐츠 디스플레이 필터링, 로그 필터링 등과 같은 다양한 비즈니스 시나리오에 적합합니다.이 패턴을 마스터하면 코드가보다 구성 가능하고 유지 관리가 쉽고 확장 가능할 수 있습니다.