对于一个一维的php数组,如何清除其中值为空的元素呢?直接的办法是foreach循环一下,一个个判断排除。不过这个方法还是略显复杂,下面分享一下今天看到的一个方法,很简洁也是头一次看到这种写法的,记录一下。
假设存在如下一个一维数组:
1 |
$array = array (0=> 'phpernote' ,1=> '' ,2=> 'com' ,3=> '' ); |
清除该数组中的空元素可以这么写:
1 |
$array = array_filter ( $array ,create_function( '$v' , 'return !empty($v);' )); |
2 |
print_r( $array ); |
3 |
//输出结果:Array ( [0] => phpernote [2] => com ); |
简要分析一下以上代码中两个比较重要的函数:
array array_filter(array array,string function) 函数利用回调函数function过滤数组array中的元素,如果自定义过滤函数function返回 true,则被操作的数组array的当前值就会被包含在返回的结果数组中, 并将结果组成一个新的数组。如果原数组是一个关联数组,键名保持不变。
string create_function(string $args,string $code) 创建一个匿名函数。