• 技术文章 >后端开发 >PHP问题

    PHP数组学习之怎么去除空白或者重复的元素

    青灯夜游青灯夜游2021-08-26 19:40:38原创221
    我们在之前的文章中了解了分割一维数组,将一维数组分割成包含指定个数元素二维数组的方法,感兴趣的可以点击链接进行查阅→《PHP数组学习之将一维数组变成包含指定多元素的二维数组》。这次我们进行PHP数组的学习和练习,聊聊在数组中怎么去空和去重。

    →相关推荐:PHP数组学习系列大汇总(持续更新~)

    今天本文的主要内容是删除数组中的空元素和重复元素。

    首先我们来看看怎么删除数组中的空元素?这里我会介绍两种方法。

    方法1、foreach循环 + empty() + unset()

    实现思想:

    foreach($array as $key => $value){  
    }

    下面我们给出完整实现代码:

    <?php 
    header("content-type:text/html;charset=utf-8");
    $array = array("php", 11, '', 12, "PHP中文网", '',2021,"mysql"); 
    var_dump($array);       
     
    // 使用array_filter()函数从数组中移除空元素
    $filtered_array = array_filter($array); 
    echo "删除空元素后的数组";
    var_dump($filtered_array); 
    ?>

    输出结果:

    1.png

    说明:在PHP中empty()函数用于检查一个变量是否被认为是空的。

    当变量等于以下的值时empty()会认为是空的:

    • ""(空字符串)

    • 0(作为整数的0)

    • 0.0(作为浮点数的0)

    • “0”(作为字符串的0)

    • NULL

    • FALSE

    • Array()(一个空数组)

    • $var (一个声明了,但是没有值得变量)

    方法2、使用array_filter()函数进行过滤

    array_filter() 函数可以用回调函数来过滤数组中的元素。该函数会迭代数组中的每个值,将它们传递给用户定义的函数或回调函数。如果省略回调函数,则默认过滤空值。(array_filter() 函数不会改变原数组)

    <?php 
    header("content-type:text/html;charset=utf-8");
    $array = array("php", 11, '', 12, "PHP中文网", '',2021,"mysql",""); 
    var_dump($array);       
     
    // 使用array_filter()函数从数组中移除空元素
    $filtered_array = array_filter($array); 
    echo "删除空元素后的数组";
    var_dump($filtered_array); 
    ?>

    输出结果:

    2.png

    可以看出:array_filter()在过滤数组元素时,不会重置索引。删除空元素后,还是按照原有的索引顺序。

    那么如果想要重置索引,从0开始重新排序,要怎么操作?我们可以使用array_values()函数。

    var_dump(array_values($filtered_array));

    3.png

    是不是很简单!

    上面我们了解了去除空元素的方法,下面我们看看怎么去除重复数组元素

    PHP数组删除重复数组不用借助其他方法,PHP直接就内置了一个函数来实现这个操作,大家知道是什么函数吗?

    好了,不买关子了,就是array_unique()函数。如果数组中有两个或更多个值相同,则array_unique()函数只保留第一个值,其他的值被移除。

    <?php 
    header("content-type:text/html;charset=utf-8");
    $array = array("php", 11, '', 11, "PHP中文网",'',"green",2021,"mysql","","green"); 
    var_dump($array);       
     
    $result = array_unique($array);
    echo "删除重复元素后的数组";
    //var_dump(array_values($filtered_array)); 
    var_dump($result);
    ?>

    输出结果:

    4.png

    array_unique()函数也不会重置键名(索引),被保留的数组将保持第一个数组项的键名类型。因此在使用array_unique()函数去除重复元素后,可以使用array_values()函数来重置索引。

    var_dump(array_values($result));

    5.png

    其实我们还可以利用数组中不存在重复键名的特性来去除重复数组元素。

    实现思想:先将键名和键值互换来移除重复值;然后在重新将键名和键值调换回来即可(推荐阅读《PHP数组学习之怎么将键名key和值的位置进行互换》)。关键代码:

    array_flip(array_flip($array))

    好了就说到这里了,有其他想知道的,可以点击这个哦。→ →php视频教程

    最后给大家推荐一个PHP数组的免费视频教程:PHP函数之array数组函数视频讲解,快来学习吧!

    以上就是PHP数组学习之怎么去除空白或者重复的元素的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    上一篇:怎么通过PHP快速获取操作系统类型(3种方法) 下一篇:PHP数组学习之提取出数字元素拼接为一个新数组
    线上培训班

    相关文章推荐

    • PHP数组学习之比较数组元素,获取第一大和第二大值• PHP数组学习之巧用函数提取最大值和第二大值• PHP数组学习之怎么截取元素片段(两种方式)• PHP数组学习之二维数组怎么进行排序(2种方法)

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网