首页 > php数组 > php删除数组中的空值或指定值操作

php删除数组中的空值或指定值操作

首先我们来看看关于php如何操作数组中的空值的多种方法

一,implode();

用implode()将数组输出为字符串,判断输出的字串是否为空。初看上去似乎是个不错的方法,可惜跟上一点一样,对于二维以上数组就不行了。举个例子:

<?php
$arr = array(
    array() ,
    array() ,
    array()
);
$str = implode(',', $arr);
if (empty($str)) echo "空";
else echo "非空";
?>

很明显$arr是个含有三个空数组的二维数组,应该也算是空的,可是输出的确是非空。判断失败。

二、count();代码如下:

<?php
$arr = array(
    "",
    "",
    ""
);
echo count($arr);
?>

三、in_array('', $arr));代码如下:

$arr= array("d","s",""); 
echo in_array('', $arr);

这个只能说明数组中有空的元素,不能证明数组是空的,很明显也不行。

四、empty();这个cpyeh觉得跟前面几种方法差不多,代码如下:

<?php
$arr = array(
    "",
    "",
    ""
);
if (empty($arr)) echo "空";
else echo "非空";
?>

//结果还是非空 

六、用strlen(),没内容的话好象长度都为1,结合上面实例我们写一个完整的删除数组空值的元素,代码如下:

<?php
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;
}
?>


本文地址:http://www.phprm.com/shuzu/fs654.html

转载随意,但请附上文章地址:-)

标签:php删除 指定值 数组空值

相关文章

发表留言