博客列表 >PHP array_filter()函数:过滤数组中的(空)值

PHP array_filter()函数:过滤数组中的(空)值

系统开发-Wu Manager
系统开发-Wu Manager原创
2020年09月12日 16:56:58863浏览

array_filter() 函数根据回调函数过滤数组中的值,省略回调函数则默认过滤空值。
array_filter()
语法:
code
array_filter( array[, function] )

省略回调函数过滤数组单元空值的例子
code
<?php
$array = array(
0 => ‘我爱开发网’,
1 => ‘www.5idev.com’,
2 => null,
3 => 1,
4 => ‘’,
5 => false,
6 => ‘0’
);
print_r(array_filter($array));
?>

运行该例子输出:
code
Array
(
[0] => 我爱开发网
[1] => www.5idev.com
[3] => 1
)
过滤的空值,与empty()函数对应,具体包括:0,’0’,’’,false,array(),null等,具体参见:《PHP empty() 检测一个变量是否为空》一文。
使用回调函数过滤指定值
code
$array = array(
0 => ‘www.5idev.com’,
1 => 1,
2 => 6,
3 => ‘’,
4 => false,
5 => 0,
6 => -6,
7 => ‘8’
);
function filter($v){
if( is_int($v) && $v % 2 == 0 ){
return true;
} else {
return false;
}
}
print_r(array_filter($array,”filter”));
运行该例子输出:
code
Array
(
[2] => 6
[5] => 0
[6] => -6
)
如果有回调函数,array_filter函数会依次将数组单元的值传递到回调函数,如果回调函数返回true,则该单元会被保留,反之则该数组单元则会被删除。
注意,如果被过滤的数组是关联数组,键名会保持不变。array_filter操作的是原数组的一个副本,如果要想改变原数组,则需要重新赋值:
code
$array = array_filter($array);

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议