PHP에서 array_filter () 함수는 배열 요소를 필터링하는 데 매우 유용한 도구입니다. 그것은 들어오는 콜백 함수에 따라 배열의 요소를 필터링하며 조건을 충족하는 요소 만 유지됩니다. 콜백 함수가 전달되지 않으면 Array_Filter ()는 값 의 값으로 요소를 삭제합니다. 연관 배열을 처리 할 때 Array_Filter ()는 복잡한 데이터 필터링 작업을 매우 편리하게 수행 할 수도 있습니다. 다음으로 Array_Filter ()를 사용하여 연관 배열을 처리하는 방법과 작동 방식 및 응용 프로그램 시나리오를 자세히 설명합니다.
array array_filter ( array $array , callable $callback = ? , int $mode = 0 ) : array
$ 배열 : 필터링 할 배열.
$ 콜백 : 필터링을위한 콜백 함수. 콜백 함수가 전달되지 않으면 거짓 값이있는 요소가 기본적으로 삭제됩니다.
$ 모드 : 콜백 함수의 매개 변수가 배열 요소의 값인지 또는 배열의 키 값 쌍인지 결정합니다. Array_filter_use_key (기본값), array_filter_use_both (키와 값을 모두 전달).
PHP에서 연관 배열의 키는 일반적으로 문자열 또는 숫자이며 쌍을 이루는 값은 저장하고 필터링하려는 데이터입니다. Array_Filter ()는 값, 키 또는 키 및 값에 따라 필터링 할 수 있습니다.
여러 사용자 정보가 포함 된 연관 배열이 있다고 가정하고 18 세 미만의 모든 사용자를 필터링하려고합니다.
<?php
$users = [
"user1" => ["name" => "Alice", "age" => 25],
"user2" => ["name" => "Bob", "age" => 17],
"user3" => ["name" => "Charlie", "age" => 30]
];
$filtered_users = array_filter($users, function($user) {
return $user["age"] >= 18; // 연령만이 더 크거나 같거나 동일합니다 18 사용자
});
print_r($filtered_users);
?>
산출:
Array
(
[user1] => Array
(
[name] => Alice
[age] => 25
)
[user3] => Array
(
[name] => Charlie
[age] => 30
)
)
위의 예에서, array_filter () 함수는 Array $ user를 통과하고 콜백 함수를 사용하여 이전 또는 18 이상의 사용자를 필터링합니다.
특정 사용자로부터 정보를 삭제하는 것과 같은 특정 키를 기반으로 연관 배열을 필터링하려고한다고 가정합니다.
<?php
$users = [
"user1" => ["name" => "Alice", "age" => 25],
"user2" => ["name" => "Bob", "age" => 17],
"user3" => ["name" => "Charlie", "age" => 30]
];
$filtered_users = array_filter($users, function($user, $key) {
return $key != "user2"; // 제외 키는 다음과 같습니다 user2 사용자
}, ARRAY_FILTER_USE_BOTH);
print_r($filtered_users);
?>
산출:
Array
(
[user1] => Array
(
[name] => Alice
[age] => 25
)
[user3] => Array
(
[name] => Charlie
[age] => 30
)
)
이 예에서 Array_Filter () 는 array_filter_use_both 모드를 사용하여 콜백 함수가 배열 요소의 값뿐만 아니라 키에도 액세스 할 수 있도록합니다. 이런 식으로, 우리는 키를 기반으로 요소를 유지할지 여부를 결정할 수 있습니다.
데이터를 처리 할 때는 NULL 값, NULL , FALLE , 0 또는 빈 문자열이 포함 된 배열이 발생할 수 있습니다. Array_Filter ()를 사용하여 이러한 유효하지 않은 데이터를 쉽게 정리하십시오.
예를 들어 배열에서 False 값이있는 요소를 삭제합니다.
<?php
$array = [0, 1, false, 2, "", null, 3];
$filtered_array = array_filter($array); // 모두 기본적으로 삭제됩니다 `false` 값
print_r($filtered_array);
?>
산출:
Array
(
[1] => 1
[3] => 2
[6] => 3
)
Array_Filter ()는 데이터 세트에서 특정 기준을 충족하는 요소를 필터링해야 할 때 매우 편리한 도구입니다. 예를 들어, 모든 주문을 특정 값보다 큰 금액으로 필터링하거나 모든 온라인 사용자를 필터링하는 데 사용될 수 있습니다.
복잡한 데이터 필터링 로직은 Array_Filter () 를 통해 클리너 코드로 구현할 수 있습니다. Foreach Loops를 사용하여 데이터를 수동으로 필터링하는 것과 비교하여 Array_Filter ()는 코드를 더 명확하고 읽기 쉽게 만듭니다.
여러 URL 주소가 포함 된 배열이 있고 지정된 도메인 이름 (예 : M66.net )이 포함 된 URL을 필터링하려고합니다. Array_Filter ()를 사용하여 Parse_url () 와 협력 하여이 작업을 완료 할 수 있습니다.
<?php
$urls = [
"http://example.com/page1",
"https://m66.net/page2",
"https://m66.net/page3",
"http://anotherdomain.com/page4"
];
$filtered_urls = array_filter($urls, function($url) {
$parsed_url = parse_url($url);
return isset($parsed_url['host']) && $parsed_url['host'] === 'm66.net';
});
print_r($filtered_urls);
?>
산출:
관련 태그:
array_filter