PHP에서 array_filter ()는 주어진 콜백 함수에 따라 배열을 필터링하는 데 사용할 수있는 매우 실용적인 기능입니다. 일반적으로 기준을 충족하지 않는 배열에서 요소를 삭제하는 데 사용됩니다. 오늘날 우리는 PHP에서 Array_Filter ()를 사용하여 여러 필터를 구현하는 방법을 다룰 것입니다.
먼저 Array_Filter () 함수의 기본 사용법을 살펴 보겠습니다. Array_Filter ()는 배열과 콜백 함수의 두 매개 변수를 수신합니다. 콜백 함수는 배열의 각 요소를 판단하며 조건을 충족하는 요소 만 유지됩니다.
<?php
$array = [1, 2, 3, 4, 5];
$result = array_filter($array, function($value) {
return $value > 2;
});
print_r($result);
?>
출력 결과는 다음과 같습니다.
Array
(
[2] => 3
[3] => 4
[4] => 5
)
이 예에서 array_filter ()는 콜백 함수의 판단 조건에 따라 2보다 큰 요소를 유지합니다.
2보다 큰 필터링 요소와 같은 여러 필터링 조건을 구현하려면 콜백 기능에서 && (및) 논리 연산자를 사용하여 여러 조건을 결합 할 수 있습니다.
<?php
$array = [1, 2, 3, 4, 5, 6, 7, 8];
$result = array_filter($array, function($value) {
return $value > 2 && $value % 2 === 0;
});
print_r($result);
?>
출력 결과는 다음과 같습니다.
Array
(
[3] => 4
[5] => 6
[7] => 8
)
이 예에서는 array_filter ()가 2보다 큰 모든 요소를 필터링합니다.
필터 기준이 복잡하거나 필터 로직을 재사용하려면 여러 필터 기준을 사용자 정의 기능으로 캡슐화 할 수 있습니다.
<?php
function filterConditions($value) {
return $value > 2 && $value % 2 === 0 && $value < 8;
}
$array = [1, 2, 3, 4, 5, 6, 7, 8];
$result = array_filter($array, 'filterConditions');
print_r($result);
?>
출력 결과는 다음과 같습니다.
Array
(
[3] => 4
[5] => 6
)
이 예에서는 필터 로직을 FilterConditions () 함수로 추출하여 array_filter () 에서 호출합니다. 이것은 코드를 더 명확하게 만들뿐만 아니라 논리 재사용을 용이하게합니다.
때로는 다른 배열 기능을 결합하여보다 복잡한 필터링 작업을 완료해야 할 수도 있습니다. 예를 들어, 여러 기준을 충족하는 배열에서 요소를 걸러 내고 필터링 된 결과를 특정 순서로 반환해야한다고 가정하면 먼저 Array_Map ()을 사용하여 배열을 변환 한 다음 Array_Filter ()를 사용하여 필터를 사용할 수 있습니다.
<?php
$array = [1, 2, 3, 4, 5, 6, 7, 8];
$array = array_map(function($value) {
return $value * 2; // 모든 요소를 곱합니다 2
}, $array);
$result = array_filter($array, function($value) {
return $value > 5; // 보다 크게 걸러냅니다 5 강요
});
print_r($result);
?>
출력 결과는 다음과 같습니다.
Array
(
[2] => 6
[4] => 10
[6] => 14
[7] => 16
)
이 예에서는 먼저 Array_Map ()을 사용하여 배열에서 요소를 변환 한 다음 Array_Filter ()를 사용하여 5보다 큰 요소를 필터링합니다.
Array_Filter () 는 PHP의 매우 강력한 도구로 특정 조건에 따라 어레이에서 요소를 필터링하는 데 도움이됩니다. Array_Filter ()를 사용할 때는 여러 조건을 결합하고 사용자 정의 기능을 사용하여보다 복잡한 필터링 요구 사항을 달성 할 수 있습니다. 또한 Array_Filter ()는 다른 배열 함수와 함께 사용될 수 있으므로 배열을보다 유연하고 효율적으로 수행 할 수 있습니다.