현재 위치: > 최신 기사 목록> PHP의 Array_Filter 함수를 사용하여 모든 비 스트링 요소를 배열에서 필터링하는 방법은 무엇입니까?

PHP의 Array_Filter 함수를 사용하여 모든 비 스트링 요소를 배열에서 필터링하는 방법은 무엇입니까?

M66 2025-07-18

PHP 개발에서, 우리는 종종 오늘날 우리가 이야기 할 것과 같은 혼합 유형 배열에서 특정 유형의 데이터를 필터링해야 할 필요성에 직면합니다. 현재 Array_Filter ()는 편리합니다.

Array_Filter () 란 무엇입니까?

Array_Filter () 는 PHP의 내장 배열 기능 중 하나이며 주로 배열의 요소를 필터링하는 데 사용됩니다. 배열과 콜백 함수 (선택 사항)를 수용하여 True를 반환하는 새로운 요소를 반환합니다.

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

  • $ 콜백 : 어레이에서 각 요소를 테스트하는 사용자 정의 함수.

  • $ 모드 : 콜백 함수의 매개 변수가 키인지 값인지 또는 둘 다인지 지정하는 선택적 매개 변수.

실제 적용 : 필터 비 스트링 요소

다음은 여러 유형의 요소를 포함하는 예제 배열입니다.

 $data = [
    "apple",
    42,
    "banana",
    true,
    "cherry",
    null,
    3.14,
    ["nested", "array"],
    (object) ["name" => "grape"]
];

우리의 목표는 모든 비 스트링 값을 필터링하고 문자열 요소 만 보존하는 것 입니다.

방법 1 : IS_String을 콜백 함수로 사용하십시오

 $filtered = array_filter($data, 'is_string');

print_r($filtered);

출력 결과 :

 Array
(
    [0] => apple
    [2] => banana
    [4] => cherry
)

Array_Filter () 는 원래 배열의 키 이름을 유지합니다. 결과가 다시 표시된 배열이 되려면 array_values ()를 사용할 수 있습니다.

 $filtered = array_values(array_filter($data, 'is_string'));

방법 2 : 익명 기능을 사용하여보다 복잡한 판단을 달성합니다.

길이가 5보다 큰 문자열 만 유지하는 것과 같은 논리를 확장하려면 다음을 작성할 수 있습니다.

 $filtered = array_filter($data, function($item) {
    return is_string($item) && strlen($item) > 5;
});

print_r($filtered);

실제 장면 응용 프로그램

양식 데이터 배열을 처리 할 때 사용자가 작성한 문자열 정보를 추출해야한다고 가정합니다.

 $userInput = [
    'username' => 'john_doe',
    'age' => 28,
    'email' => 'john@example.com',
    'newsletter' => true,
    'website' => 'https://m66.net/profile/john'
];

$stringsOnly = array_filter($userInput, 'is_string');

print_r($stringsOnly);

출력 결과 :

 Array
(
    [username] => john_doe
    [email] => john@example.com
    [website] => https://m66.net/profile/john
)

이렇게하면 이메일 전송 또는 데이터베이스 쿼리 구축과 같은 텍스트 유형 데이터 만 처리 할 수 있습니다.

요약

array_filter ()를 사용하여 is_string ()을 사용하여 혼합 배열에서 모든 문자열 요소를 필터링하는 데 매우 편리합니다. 이 방법은 간단하고 효율적이며 매일 PHP 개발에서 어레이 데이터의 청소 및 처리에 매우 적합합니다.