PHP에서 array_filter () 함수는 배열에서 요소를 필터링하는 데 사용됩니다. 이를 통해 맞춤 조건에 따라 배열의 특정 요소를 보존 할 수 있습니다. 기본적으로 Array_Filter ()는 0 , null , false , empty string 등과 같은 배열에서 False가 있는 요소를 삭제합니다. 부울 배열의 경우 Array_Filter () 가 거짓 부울 값의 항목을 자동으로 삭제하지만 처리 중에 어떤 값이 남은 값을보다 정확하게 제어 해야하는 경우, 우리는 호출 기능을 통해이 요구 사항을 달성 할 수 있습니다.
array_filter () 함수는 두 가지 매개 변수를 수락합니다.
배열 : 필터링 될 원래 배열.
콜백 함수 (선택 사항) : 배열에서 요소를 보존할지 여부를 결정하는 사용자 정의 함수. 콜백 함수가 제공되지 않으면 Array_Filter ()는 부울 값으로 모든 요소를 삭제합니다.
<?php
$array = [0, 1, 2, 3, 4, 5, null, false, "0", "PHP"];
$result = array_filter($array); // 기본 동작,값을 삭제하십시오 false 강요
print_r($result);
?>
위의 코드에서는 array_filter () 가 0 , null , false 및 empty strings로 요소를 자동으로 삭제하고 반환 된 결과는 다음 과 같습니다.
Array
(
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[8] => PHP
)
때로는 필터링 조건을보다 신중하게 제어해야합니다. 예를 들어, True 값이있는 부울 배열 항목 만 보존됩니다. 이를 달성하기 위해 배열 항목이 부울 사실 인지 확인하기 위해 구체적으로 콜백 기능을 전달할 수 있습니다.
<?php
$array = [0, 1, 2, 3, 4, 5, null, false, "0", true, "PHP"];
$result = array_filter($array, function($value) {
return $value === true; // 부울 가치 만 있습니다 true 강요
});
print_r($result);
?>
이 예에서는 콜백 함수를 사용하여 각 요소가 부울 값 과 엄격하게 동일인지 확인합니다. 이런 식으로 부울 가치 가있는 요소 만 보존됩니다. 출력 결과는 다음과 같습니다.
Array
(
[10] => 1
)
배열에 URL이 있고 URL로 대체 해야하는 도메인 이름이 m66.net 인 경우 array_filter () 함수에서 Array_Map ()을 결합하거나 콜백 함수에서 처리 할 수 있습니다.
<?php
$array = [
"https://example.com/page1",
"http://example.com/page2",
"https://m66.net/page3",
"http://m66.net/page4"
];
// 사용 array_map() 콜백 함수 교체와 결합 URL 도메인 이름
$array = array_map(function($url) {
return preg_replace("/https?:\/\/[^\/]+/", "https://m66.net", $url); // 도메인 이름을 바꾸십시오
}, $array);
print_r($array);
?>
이 코드에서는 Array_Map ()을 사용하여 배열을 반복하고 URL의 도메인 이름을 일반 표현식으로 바꿉니다. 최종 출력은 다음과 같습니다.