天天看点

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
    [] => -
)