定义

array_filter – 用回调函数过滤数组中的元素

描述

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

依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。
数组的键名保留不变。
如果没有提供 callback 函数, 将删除 array 中所有等值为 false 的元素。
参数 flag 决定callback接收的参数形式:
array_filter_use_key – 接受键名作为的唯一参数
array_filter_use_both – 同时接受键名和键值

示例一

<?php
  function even($var)
  {
      // returns whether the input integer is even
      return(!($var & 1));
  }
  $array = array(6, 7, 8, 9, 10, 11, 12);

  echo "even:\n";
  print_r(array_filter($array, "even"));
?>

将输出:

even:
array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

示例二

不使用回调函数

<?php
  $entry = array(
               0 => 'foo',
               1 => false,
               2 => -1,
               3 => null,
               4 => ''
            );
  print_r(array_filter($entry));
?>

将输出:

array
(
    [0] => foo
    [2] => -1
)