• 技术文章 >php教程 >php手册

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

    2016-06-13 09:55:57原创677
    我们介绍关于php中数组的操作,删除数组中指定值或判断数组中是否有值或清除空值操作,有需要的同学可以参考一下。

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

    implode(); 此函数可参考http://www.bKjia.c0m/phper/29/2dc95be9381b4bb1753083c09fda1a36.htm
    用implode()将数组输出为字符串,判断输出的字串是否为空。初看上去似乎是个不错的方法,可惜跟上一点一样,对于二维以上数组就不行了。举个例子:

    代码如下 复制代码

    $arr= array(array(),array(),array());
    $str = implode(',',$arr);

    if(empty($str)) echo "空";
    else echo "非空";

    很明显$arr是个含有三个空数组的二维数组,应该也算是空的,可是输出的确是非空。判断失败。
    三、count(); 可参考http://www.bKjia.c0m/w3school/php/func_array_count.htm

    代码如下 复制代码

    $arr= array("","","");
    echo count($arr);

    四、in_array('', $arr)); 函数用法可参考http://www.bKjia.c0m/phper/24/c5b81a8af14b1c0928eea343f59b454a.htm

    代码如下 复制代码
    $arr= array("d","s","");
    echo in_array('', $arr);

    这个只能说明数组中有空的元素,不能证明数组是空的。很明显也不行。
    五、empty(); 函数用法可参考http://www.bKjia.c0m/so/php+empty()
    这个cpyeh觉得跟前面几种方法差不多

    代码如下 复制代码

    $arr= array("","","");
    if(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;
    }

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php回车与空格字符替换函数 下一篇:解决Magento报错:Fatal error: Call to undefined method
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP 页面跳转到另一个页面的多种方法方法总结• php自动跳转中英文页面• 轻松修复Discuz!数据库• PHP常用代码• PHP6的核心是对Unicode的内置支持
    1/1

    PHP中文网