定义和用法

  array_filter() 函数用回调函数过滤数组中的元素,如果自定义过滤函数返回 true,则被操作的数组的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组。如果原数组是一个关联数组,键名保持不变。

  (PHP 4 >= 4.0.6, PHP 5) 

  array_filter -- 用回调函数过滤数组中的单元

  array array_filter ( array input [, callback callback] )

  array_filter() 依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

  用户不应在回调函数中修改数组本身。例如增加/删除单元或者对 array_filter() 正在作用的数组进行 unset。如果数组改变了,此函数的行为没有定义。

  如果没有提供 callback 函数,array_filter() 将删除 input 中所有等值为 FALSE 的条目。

例子 2.

 

array_filter()无 callback   
<?php 
  $entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' );
   print_r(array_filter($entry));
?>
上例将输出:  
Array([0] => foo,[2] => -1)

语法  
array_filter(array,function)
参数    描述
array    必需。规定输入的数组。
function    必需。自定义函数的名称。
  
<?php
   function myfunction($v) {
    if ($v==="Horse") { 
    return true;
       }
  return false;
  }
   $a=array(0=>"Dog",1=>"Cat",2=>"Horse");
   print_r(array_filter($a,"myfunction"));
?>
输出:  
Array ( [2] => Horse )