array_filter - 用回调函数过滤数组中的元素php
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 )
不使用回调函数code
<?php $entry = array( 0 => 'foo', 1 => false, 2 => -1, 3 => null, 4 => '' ); print_r(array_filter($entry)); ?>
将输出:input
Array ( [0] => foo [2] => -1 )