Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP array_filter() 함수 완벽 가이드 – 콜백으로 배열 요소 걸러내기

PHP의 array_filter() 함수는 사용자가 직접 정의한 콜백(callback) 함수를 기준으로 배열의 요소를 걸러내는(필터링하는) 함수입니다. 조건을 통과한 요소들만 모아 필터링된 새로운 배열을 반환합니다.

구문 (Syntax)

array_filter(arr, callback, flag)

매개변수 (Parameters)

  • arr – 필터링할 대상이 되는 배열입니다.

  • callback – 각 요소를 검사할 때 사용할 콜백 함수입니다. 콜백 함수가 true를 반환하는 요소만 결과 배열에 남습니다.

  • flag – 콜백 함수에 전달되는 인자를 지정하는 선택적 매개변수입니다.

    • ARRAY_FILTER_USE_KEY – 값을 전달하는 대신 키(key)만 콜백 함수의 인자로 전달합니다.

    • ARRAY_FILTER_USE_BOTH – 값과 키를 모두 콜백 함수의 인자로 전달합니다.

반환 값 (Return)

array_filter() 함수는 콜백 조건을 통과한 요소들로 이루어진 필터링된 배열을 반환합니다.

예제 (Example)

아래 예제에서는 짝수만 골라내는 check() 콜백 함수를 정의하고, 이를 array_filter()에 적용해 보겠습니다.

<?php
function check($arr) {
   return(!($arr & 1));
}
$arr1 = array(3, 6, 9, 15, 20, 30, 45, 48, 59, 66);
print_r(array_filter($arr1, "check"));
?>

출력 (Output)

Array
(
[1] => 6
[4] => 20
[5] => 30
[7] => 48
[9] => 66
)

참고 사항

위 출력 결과를 보면 알 수 있듯이, array_filter()는 원본 배열의 키(key)를 그대로 유지합니다. 따라서 인덱스가 재정렬되지 않으므로, 연속된 숫자 인덱스가 필요하다면 array_values() 함수를 함께 사용하는 것이 좋습니다.