현재 위치: > 최신 기사 목록> Array_Filter ()를 사용하여 조건부 필터 양식 입력을 구현하십시오

Array_Filter ()를 사용하여 조건부 필터 양식 입력을 구현하십시오

M66 2025-05-14

웹 개발 과정에서 특정 조건을 충족하는 입력 항목 만 유지되도록 양식별로 제출 한 데이터를 필터링해야합니다. PHP는 매우 유용한 기능 Array_Filter () 를 제공하며, 배열에서 널 값을 제거하는 데 사용할 수있을뿐만 아니라 콜백 함수를 사용자 정의하여보다 복잡한 필터링 로직을 구현할 수 있습니다.

이 기사에서는 Array_Filter ()를 사용하여 더 간결하고 관리 가능한 PHP 코드를 작성하는 데 도움이되는 양식으로 제출 된 데이터를 조건부 필터링하는 방법을 소개합니다.

Array_Filter () 란 무엇입니까?

Array_Filter () 는 PHP가 제공하는 배열 처리 함수입니다. 구문은 다음과 같습니다.

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

  • $ 콜백 : (선택 사항) 필터 조건을 정의하는 콜백 함수.

  • $ 모드 : (선택 사항) array_filter_use_key 또는 array_filter_use_both를 사용하여 콜백 함수 매개 변수를 지정할 수 있습니다.

콜백 함수가 전달되지 않으면 Array_Filter ()는 배열에서 False가 있는 요소를 자동으로 제거합니다 (예 : False , 0 , "" , NULL , [] 등).

예 : 필터 양식 입력

다음 필드를 제출하는 사용자 등록 양식이 있다고 가정합니다.

  • 이름

  • 우편

  • 나이

  • 이메일 구독 여부

우리는 채워진 값으로 필드를 필터링하고 18 세 이상의 사용자 데이터 만 유지하려고합니다.

양식 제출 예

 $_POST = [
    'name' => 'Alice',
    'email' => '',
    'age' => 17,
    'subscribe' => 'yes'
];

Array_Filter ()를 사용하여 필터 로직 구현

 // 사용자 정의 필터 기준
$filteredInput = array_filter($_POST, function ($value, $key) {
    // 빈 값을 건너 뜁니다
    if ($value === '' || $value === null) {
        return false;
    }

    // ~에 맞서 age 필드는 특정 방식으로 처리됩니다
    if ($key === 'age') {
        return (int)$value > 18;
    }

    return true;
}, ARRAY_FILTER_USE_BOTH);

print_r($filteredInput);

출력 결과

 Array
(
    [name] => Alice
    [subscribe] => yes
)

보시다시피, 전자 메일은 컬링 된 빈 문자열이며, 18 세 이하의 나이는 18 세 이상이며 나머지는 우리가 관심을 갖는 유효한 필드입니다.

응용 프로그램 시나리오 확장

이 방법을 사용하여 URL 요청에서 GET 매개 변수를 정리할 수도 있습니다.

 $_GET = [
    'search' => 'PHP',
    'page' => '0',
    'sort' => null,
    'token' => 'abc123'
];

$cleanQuery = array_filter($_GET, function ($value) {
    return $value !== '' && $value !== null;
});

$queryString = http_build_query($cleanQuery);

$url = "https://m66.net/search.php?" . $queryString;

echo $url;

산출

 https://m66.net/search.php?search=PHP&page=0&token=abc123

0 의 판단을 명시 적으로 배제하고 의미있는 매개 변수를 유지하기 때문에 '0'페이지 값은 필터링되지 않습니다.

요약

Array_Filter ()를 사용하면 양식 입력을 처리 할 때 코드 로직을 크게 단순화 할 수 있으며 가벼운 데이터 검증 또는 전처리에 특히 적합합니다. 콜백 기능과 함께 사용될 때 대부분의 조건부 필터링의 요구를 충족 할 수 있으며 PHP에서 매우 실용적인 기능입니다.

Array_Filter () 는 데이터 검증을위한 보편적 인 도구가 아닙니다. 보다 복잡한 검증 요구에 대해서는 여전히 PHP의 필터 확장 (예 : Filter_var () )를 결합하거나 처리를 위해 완전한 검증 프레임 워크를 사용하는 것이 좋습니다.

다음에 처리 할 때 양식 데이터를 처리 할 때 Array_Filter () 를 잘 활용하여 개발 효율성을 향상시킬 수 있기를 바랍니다.