实例
<?php function test_odd($var) { return($var & 1); } $a1=array("a","b",2,3,4); print_r(array_filter($a1,"test_odd")); ?>
定义和用法
array_filter() 函数用回调函数过滤数组中的元素。
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。
语法
array_filter(array,callbackfunction);
参数 | 描述 |
array | 必需。规定要过滤的数组。 |
callbackfunction | 必需。规定要用的回调函数。 |
技术细节
返回值: | 返回过滤的数组。 |
PHP 版本: | 4.0.6+ |
今天在翻看手册查询array_filter()的使用细节时,看到了个小关键点:If no callback is supplied, all entries of input equal to FALSE (see converting to boolean) will be removed. 如果没有给出回调函数,所有的等于 FALSE 的元素将会被移除掉,这不正好可以用来过滤一些有空元素的数组吗?连忙写个例子测试一下想法:
$entry = array( 0 => '蓝色夏威夷的博客', 1 => false, 2 => 1, 3 => null, 4 => '', 5 => 'http://www.jb51.net', 6 => '0', 7 => array(), 8 => 0 ); $validarr = array_filter($entry); print_r($validarr); //输出结果: Array ( [0] => 蓝色夏威夷的博客 [2] => 1 [5] => http://www.jb51.net )
一些可以转化为布尔型FALSE的数组元素都被移除了,对我们想要得到一个有效的数组作了一个非常全面的过滤。
以上是php用回调函数过滤数组中的元素的函数array_filter()的详细内容。更多信息请关注PHP中文网其他相关文章!