현재 위치: > 최신 기사 목록> Array_Filter ()를 사용하여 어레이에서 널 값을 쉽게 필터링하는 방법? 배열에서 빈 요소를 정리하는 데 도움이되는 실용적인 팁은 무엇입니까?

Array_Filter ()를 사용하여 어레이에서 널 값을 쉽게 필터링하는 방법? 배열에서 빈 요소를 정리하는 데 도움이되는 실용적인 팁은 무엇입니까?

M66 2025-06-05

PHP 개발에서 배열 작업은 일상 작업에서 가장 일반적인 링크입니다. 우리는 거의 매일 "청소 어레이"를하고 있습니다. 사용자가 제출 한 양식 데이터를 처리하든 인터페이스에서 반환 된 데이터를 정리하는지 여부에 관계없이 가장 일반적인 요구 중 하나는 다음과 같습니다.

다행히도 PHP는 매우 우아한 방법을 제공합니다 : Array_Filter () . 이 기사는이 기능의 사용법에 대한 깊은 이해를 안내하고 빈 요소를 배열에서 효율적이고 유연하게 필터링하는 데 도움이되는 몇 가지 실용적인 팁을 공유합니다.

기본 사용 : 한 줄의 코드, 깨끗하고 깔끔합니다

php array_filter () 의 기본 동작은 다음을 포함하여 배열에서 "false"값을 가진 요소를 제거하는 것입니다.

  • 빈 문자열 '' '

  • 번호 0 및 문자열 '0'

  • 거짓

  • 빈 배열 []

가장 간단한 예를 살펴 보겠습니다.

 $data = ['apple', '', null, 'banana', 0, '0', false];

$filtered = array_filter($data);

print_r($filtered);

출력 결과는 다음과 같습니다.

 Array
(
    [0] => apple
    [3] => banana
)

Array_Filter () 는 기본적으로 "콘텐츠가없는 것처럼 보이는 모든 값"을 제거한다는 것을 알게됩니다. 이 사용법은 대부분의 시나리오에 충분합니다.

사용자 정의 필터링 로직 : 더 정확하게 필터

'0' 또는 0이 필터링되기를 원하지 않으면 콜백 함수를 사용자 정의 할 수 있습니다. array_filter ()를 필터링하여 실제로 "빈"이라고 생각하는 값 만 또는 '' '를 필터링하십시오.

 $data = ['title' => '', 'price' => 0, 'available' => false, 'sku' => '0', 'description' => null];

$filtered = array_filter($data, function($value) {
    return !is_null($value) && $value !== '';
});

print_r($filtered);

산출:

 Array
(
    [price] => 0
    [available] => 
    [sku] => 0
)

이 방법은 특히 사용자 양식 데이터 또는 구성 항목을 처리하는 데 적합하며 실수로 의미있는 "제로 값"을 삭제하지 않습니다.

신청 사례 : 양식 데이터를 정리 한 다음 제출하십시오.

게시물 요청을 통해 사용자가 입력 한 데이터를 API로 보내고 싶다고 가정하면 NULL 값을 전달하고 싶지 않습니다.

 $formData = [
    'name' => '장 산',
    'email' => '',
    'phone' => null,
    'age' => 25
];

$cleanData = array_filter($formData, function($val) {
    return !is_null($val) && $val !== '';
});

$apiUrl = 'https://api.m66.net/user/submit';

$options = [
    'http' => [
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($cleanData),
    ]
];

$context  = stream_context_create($options);
$result = file_get_contents($apiUrl, false, $context);

echo $result;

이런 식으로, 우리는 API에 많은 쓸모없는 필드를받지 못하게하기 위해 유효한 데이터 만 보냅니다.

팁 : 다차원 배열을 재귀 적으로 필터링합니다

배열이 프론트 엔드에서 제출 된 중첩 형식과 같은 다차원 인 경우 재귀 적으로 청소해야합니다.

 function recursive_filter(array $input) {
    foreach ($input as $key => &$value) {
        if (is_array($value)) {
            $value = recursive_filter($value);
        }
    }
    return array_filter($input, function($val) {
        return $val !== '' && !is_null($val);
    });
}

$data = [
    'user' => [
        'name' => 'Li Si',
        'email' => '',
        'tags' => ['', null, 'developer']
    ],
    'status' => null
];

$cleaned = recursive_filter($data);

print_r($cleaned);

이러한 방식으로 처리 한 후 배열은 깨끗하고 빈 값을 놓치거나 유효한 콘텐츠를 잘못 삭제하지 않습니다.

요약 : Array_Filter ()는 데이터 처리를위한 좋은 도우미입니다

위의 경우를 통해 다음을 볼 수 있습니다.

  • Array_Filter () 의 기본 동작은 이미 매우 강력하며 다양한 "거짓 값"을 빠르게 제거합니다.

  • 사용자 정의 콜백을 사용하면 필터를 필터링 할 내용을 정확하게 제어 할 수 있습니다.

  • 복잡한 구조를 다룰 때는 재귀적인 방식으로 쉽게 처리 할 수 ​​있습니다.

  • 실제 개발에서는 데이터베이스 작성 전에 양식 데이터, 인터페이스 요청 매개 변수 및 데이터 필터링을 정리하는 데 사용될 수 있습니다.

요컨대,이 기능을 사용하여 더 능숙할수록 데이터가 깨끗하고 코드가 더 우아 할 수 있습니다!