php删除数组中的空值或指定值操作
首先我们来看看关于php如何操作数组中的空值的多种方法
一,implode();
用implode()将数组输出为字符串,判断输出的字串是否为空。初看上去似乎是个不错的方法,可惜跟上一点一样,对于二维以上数组就不行了。举个例子:
$arr = array ( array (), array (), array ()); $str = implode( ',' , $arr ); if ( empty empty ( $str )) echo "空" ; else echo "非空" ;很明显$arr是个含有三个空数组的二维数组,应该也算是空的,可是输出的确是非空。判断失败。
二、count();代码如下:
$arr = array ( "" , "" , "" ); echo count ( $arr );三、in_array('', $arr)); 代码如下:
$arr = array ( "d" , "s" , "" ); echo in_array( '' , $arr );这个只能说明数组中有空的元素,不能证明数组是空的,很明显也不行。
四、empty(); 这个cpyeh觉得跟前面几种方法差不多,代码如下:
$arr = array ( "" , "" , "" ); if ( empty empty ( $arr )) echo "空" ; else echo "非空" ; //结果还是非空六、用strlen(), 没内容的话好象长度都为1,结合上面实例我们写一个完整的删除数组空值的元素,代码如下:
function array_remove_key( $array , $keys ) { $num = count ( $keys ); $num_last = $num - 1; $this_array_0 = & $array ; $last_key = $keys [ $num_last ]; for ( $i = 0; $i < $num_last ; $i ++) { $this_key = $keys [ $i ]; $this_var_name = 'this_array_' . $i ; $next_var_name = 'this_array_' . ( $i + 1); if (! array_key_exists ( $this_key , $ $this_var_name )) { break ; } $ $next_var_name = &${ $this_var_name }[ $this_key ]; } unset(${ $next_var_name }[ $last_key ]); return $array ; }查看更多关于php删除数组中的空值或指定值操作 - php数组的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31200