PHP 개발에서, 우리는 종종 오늘날 우리가 이야기 할 것과 같은 혼합 유형 배열에서 특정 유형의 데이터를 필터링해야 할 필요성에 직면합니다. 현재 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"]
];
우리의 목표는 모든 비 스트링 값을 필터링하고 문자열 요소 만 보존하는 것 입니다.
$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'));
길이가 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 개발에서 어레이 데이터의 청소 및 처리에 매우 적합합니다.