천

유용한 함수 array_filter 입니다.

· 2015-12-05 (토) 20:41:23 · 3078

유용한 함수 array_filter

(PHP 4 >= 4.0.6, PHP 5)

array_filter — Filters elements of an array using a callback function

배열의 각 원소들을 콜백 함수의 인자로 각각 넣어서 함수의 결과값이 true(1) 인것만 뽑아서 배열로 반환.

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

 

예제

function odd($var){

    // returns whether the input integer is odd, $var 가 홀수 일경우 1 을 반환, 짝수일 경우 0 을 반환
    return($var & 1);
}

function even($var){

    // returns whether the input integer is even, $var 가 짝수 일경우 true 를 반환, 홀수 일경우 false 를 반환
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\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
)

 

참고 - 콜백함수 란
간단하게 설명하면. 특정 함수 내에서 처리 과정 내에서 자동적으로 호출 되어 사용되는 함수

즉 array_filter 를 직접 구현해 보면

function array_filter_test($array, $function=''){

    if (!is_array($array)) return Array();

    $return = Array();
    foreach($array as $k => $v){

        if (!empty($function)) $result = call_user_func($function, $v);//여기서 콜백 함수가 사용됨
        else $result = !empty($v);

        if (!empty($result)) $return[$k] = $v;
    }

    return $return;
}


echo "Odd :\n";
print_r(array_filter_test($array1, "odd"));
echo "Even:\n";
print_r(array_filter_test($array2, "even"));

|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

8,188건
+
제목 글쓴이 날짜 조회
15-12-13 조회 2,528
15-12-13 조회 2,940
15-12-11 조회 2,602
15-12-11 조회 2,564
15-12-11 조회 2,566
15-12-10 조회 2,525
15-12-10 조회 2,583
15-12-10 조회 2,559
15-12-03 조회 3,202
15-12-03 조회 2,718
15-11-25 조회 2,797
15-11-09 조회 3,204
15-11-04 조회 2,967
15-06-09 조회 4,090
15-05-06 조회 5,086
15-03-28 조회 4,573
14-12-05 조회 4,996
14-10-25 조회 5,090
14-10-13 조회 4,269
14-10-03 조회 6,254
14-09-19 조회 4,961
14-09-18 조회 4,050
14-09-13 조회 4,611
14-09-03 조회 5,599
14-08-26 조회 4,205
14-08-26 조회 4,010
14-08-26 조회 3,977
14-08-11 조회 6,502
14-08-06 조회 4,125
14-08-06 조회 3,721
14-08-06 조회 3,933
14-08-01 조회 6,303
14-08-01 조회 3,842
14-07-30 조회 4,438
14-06-28 조회 5,161
14-06-28 조회 4,435
14-05-11 조회 4,588
14-05-09 조회 4,945
14-05-09 조회 7,706
14-04-30 조회 4,327
14-04-27 조회 4,191
14-04-25 조회 4,895
14-04-21 조회 3,873
14-04-21 조회 5,002
14-04-10 조회 4,600
14-04-01 조회 6,156
14-03-03 조회 3,531
14-02-25 조회 5,919
14-02-14 조회 5,194
14-02-13 조회 4,950
14-01-03 조회 4,441
13-12-06 조회 3,765
13-11-22 조회 5,521
13-11-18 조회 4,026
13-10-02 조회 4,447
13-10-02 조회 3,693
13-10-02 조회 3,958
13-10-02 조회 3,815
13-10-02 조회 4,182
13-09-16 조회 8,028
13-09-16 조회 5,393
13-08-18 조회 5,426
13-07-11 조회 4,059
13-07-10 조회 4,690
13-07-09 조회 4,728
13-07-09 조회 4,987
13-07-04 조회 4,485
13-07-04 조회 4,123
13-07-04 조회 4,238
13-07-01 조회 4,724
13-07-01 조회 4,555
13-07-01 조회 6,830
13-06-23 조회 4,377
13-06-05 조회 3,625
13-05-29 조회 4,868
13-05-10 조회 4,273
13-04-05 조회 4,890
13-04-05 조회 6,579
13-04-05 조회 1.1만
13-04-05 조회 7,173
13-04-05 조회 6,563
13-03-31 조회 5,834
13-03-31 조회 4,160
13-03-28 조회 4,522
13-03-28 조회 6,719
13-03-28 조회 9,197
13-03-28 조회 4,333
13-03-24 조회 3,949
13-03-21 조회 4,624
13-03-21 조회 1.8만
13-03-14 조회 3,933
13-03-10 조회 4,745
13-03-10 조회 4,506
13-03-10 조회 4,203
13-03-08 조회 5,258
13-03-08 조회 4,367
13-03-03 조회 5,023
13-03-03 조회 7,475
13-03-03 조회 4,217
13-03-03 조회 1.1만