update : 2015.11.03
php.shukuma.com

검색:
 
 
콜백 함수를 사용하여 배열 원소를 필터

array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_filter콜백 함수를 사용하여 배열 원소를 필터

설명

array array_filter ( array $input [, callback $callback ] )

array_filter()input 배열안의 각값에 callback 함수에 전달하는 작업을 반복한다. callback 함수가 true를 반환하면, input의 현재값이 결과 배열로 반환된다. 배열 키들은 보존된다.

인수

input

반복할 배열

callback

사용할 콜백 함수

callback을 지정하지 않으면, input에서 FALSE와 같은(논리형으로 변환 참고) 모든 원소는 제거됩니다.

반환값

필터한 배열을 반환합니다.

예제

Example #1 array_filter() 예제

<?php
function odd($var)
{
    return (
$var 1);
}

function 
even($var) {
    return (!(
$var 1));
}

$array1 = array("a"=>1"b"=>2"c"=>3"d"=>4"e"=>5);
$array2 = array(6789101112);

echo 
"홀수:\n";
print_r(array_filter($array1"odd"));
echo 
"짝수:\n";
print_r(array_filter($array2"even"));
?>

위 예제의 출력:

Odd :
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Example #2 callback 없는 array_filter()

<?php

$entry 
= array(
             
=> 'foo',
             
=> 'false',
             
=> -1,
             
=> null,
             
=> ''
          
);

print_r(array_filter($entry));
?>

위 예제의 출력:

Array
(
    [0] => foo
    [1] => -1
)

주의

Caution

콜백 함수에서 배열을 변경할 때(원소 추가, 삭제, unset 등), 이 함수의 동작은 정의되지 않습니다.

참고

  • array_map() - Applies the callback to the elements of the given arrays
  • array_reduce() - 콜백 함수를 사용하여 배열을 반복적으로 단일 값으로 축소
  • array_walk() - 배열의 각 원소에 대해서 특정 함수를 적용