天天看點

array_filter

array_filter

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

array_filter — 用回調函數過濾數組中的單元

說明

array array_filter ( array array[,callable callback [, int $flag = 0 ]] )

依次将 array 數組中的每個值傳遞到 callback 函數。如果 callback 函數傳回 TRUE,則 input 數組的目前值會被包含在傳回的結果數組中。數組的鍵名保留不變。

參數

array

要循環的數組

callback

使用的回調函數

如果沒有提供 callback 函數, 将删除 input 中所有等值為 FALSE 的條目。更多資訊見轉換為布爾值。

flag

決定callback接收的參數形式:

ARRAY_FILTER_USE_KEY - callback接受鍵名作為的唯一參數

ARRAY_FILTER_USE_BOTH - callback同時接受鍵名和鍵值

傳回值

傳回過濾後的數組。

範例

Example #1 array_filter() 例子

<?php
function odd($var)
{
    // returns whether the input integer is odd
    return($var & );
}

function even($var)
{
    // returns whether the input integer is even
    return(!($var & ));
}

$array1 = array("a"=>, "b"=>, "c"=>, "d"=>, "e"=>);
$array2 = array(, , , , , , );

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

以上例程會輸出:

Odd :
Array
(
    [a] => 
    [c] => 
    [e] => 
)
Even:
Array
(
    [] => 
    [] => 
    [] => 
    [] => 
)
           

Example #2 array_filter() 無 callback

<?php

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

print_r(array_filter($entry));
?>
           

以上例程會輸出:

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