현재 위치: > 최신 기사 목록> Array_Filter ()는 익명 함수와 함께 사용됩니다

Array_Filter ()는 익명 함수와 함께 사용됩니다

M66 2025-06-05

PHP의 배열 데이터 필터링은 특히 사용자 입력, API 데이터 또는 데이터베이스 결과를 처리 할 때 매우 일반적인 작업입니다. Array_Filter () 는 PHP가 제공하는 강력한 기능으로 익명 함수 (클로저)를 결합하여 유연하고 효율적인 데이터 필터링을 달성 할 수 있습니다. 이 기사를 사용하면 다양한 필터링 로직을 구현하는 방법을 이해하기 위해 단계별로 진행됩니다.

1. Array_Filter () 란 무엇입니까?

Array_Filter ()는 콜백 함수 (콜백)를 통해 배열의 각 요소를 판단하고 조건을 충족하는 요소로 구성된 새 배열을 반환하는 내장 PHP 함수입니다.

기본 구문은 다음과 같습니다.

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $ 배열 : 필터 배열.

  • $ 콜백 : 각 요소에 사용되는 콜백 기능. 생략하면 거짓 값이있는 요소가 기본적으로 제거됩니다.

  • $ 모드 : 선택적 매개 변수를 매개 변수로 전달할지 여부를 결정합니다.

2. 익명 기능 및 폐쇄 소개

클로저라고도하는 익명 함수는 PHP에 이름이없는 함수이며 임시 로직 처리 중에 사용하기에 매우 적합합니다. 구문은 다음과 같습니다.

 $filterFunc = function($value) {
    return $value > 10;
};

이 유형의 함수는 일반적으로 더 세분화 된 데이터 제어를 달성하기 위해 Array_Filter () 와 함께 사용됩니다.

3. 조합 사용 예제

예 1 : 필터 번호 10보다 큰 필터 숫자

 $numbers = [4, 15, 9, 23, 5];

$filtered = array_filter($numbers, function($value) {
    return $value > 10;
});

print_r($filtered);

산출:

 Array
(
    [1] => 15
    [3] => 23
)

당신은 10보다 큰 숫자 만 유지된다는 것을 알 수 있습니다.

예제 2 : 배열의 빈 필드 필터 (예 : 양식이 제출 된 후)

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

예 3 : 키 이름이 키 값 쌍에 특정 문자열이 포함 된 요소를 유지합니다.

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

예제 4 : URL 데이터로 필터링

데이터 소스 (예 : 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);

4. 요약

Array_Filter ()를 사용하여 익명 기능과 결합하면 다양한 맞춤형 데이터 필터링 요구를 쉽게 달성 할 수 있습니다. 숫자 값, 문자열 또는 다차원 배열을 필터링하든, 유연하게 처리하기 위해 적절한 폐쇄 기능 만 전달하면됩니다.

제안:

  • 사용자 데이터를 처리 할 때 필터를 사용하여 원치 않는 콘텐츠를 지우십시오.

  • 익명 기능을 사용하여 코드 가독성과 모듈성을 최대한 개선하십시오.

  • 원래 배열과 일치하는 키 이름을 유지하려면 Array_Filter_use_Both 와 함께 사용할 수 있습니다.