掌握PHP删除数组中的空值的小技巧
方法一:利用循环(本文以foreach为例)
语法结构如下:
foreach (array_expression as $value)
foreach (array_expression as $key => $value)
具体用法请参考:《php foreach的用法详解》,具体代码如下:
<?php foreach( $arr as $k=>$v){ if( !$v ) unset( $arr[$k] ); } ?>
这种方法比较简单,初学者便于理解,但是复杂度较高,消耗较多的内存,所以一般不建议使用。
方法二:利用array_filter()函数
语法结构如下:
array_filter( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次将 array 数组中的每个值传递到callback 函数。如果 callback
函数返回 true
,则 array
数组的当前值会被包含在返回的结果数组中,数组的键名保留不变。
-
array
要循环的数组 -
callback
使用的回调函数,如果没有提供callback
函数,将删除array
中所有等值为FALSE
的条目。 -
flag
决定callback
接收的参数形式:(1)ARRAY_FILTER_USE_KEY – callback接受键名作为的唯一参数。(2)ARRAY_FILTER_USE_BOTH – callback同时接受键名和键值。
返回值:被过滤后的数组。
具体代码如下:
<?php $arr = array( 0 => 'hello', 1 => false, 2 => -1, 3 => null, 4 => '' ); echo "<pre>"; var_dump(array_filter($arr)); ?>
运行结果如下:
/* array(2) { [0]=> string(5) "hello" [2]=> int(-1) } */
推荐:php视频教程 php教程