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

    php 数组中怎么移除元素

    藏色散人藏色散人2021-03-22 09:51:10原创346

    php数组中移除元素的方法:1、通过“unset($array[1]);”方式移除数组元素;2、通过“array_splice($array, 1, 1);”方式移除数组元素。

    本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑

    引言

    PHP的数组,说白了就是一个映射的键值对集合。那么如何从数组元素中删除元素呢?你肯定首先想到遍历数组,然后找到目标项,然后删除。

    我看到有同学将要删除的元素 = null,这并不起作用,因为 null 也是作为值存在的。并不能移除元素。

    本文就专门说说移除数组元素的方法。

    学习时间

    大致上说,移除数组元素,有两个常用方法,一个是 unset 函数,一个是 array_splice 函数。

    array_splice 什么时间使用?就是你拿到的是值,却不知道其索引,就要用这个了。

    unset 函数

    请注意,使用 unset 函数不会重新构建索引,数组不会洗牌。如果你想要在删除元素后重新创建索引,那就执行 array_values,返回的数组就是重新编排过索引的了。并且所有索引被设置成默认从0开始的数字。

    举例说明:

    $array = [0 => "a", 1 => "b", 2 => "c"];
    unset($array[1]);

    执行该操作后,数组 $array 的值如下:

    [
        [0] => a
        [2] => c
    ]

    可以注意到数组索引没有变化。

    【推荐学习:PHP视频教程

    array_splice 函数

    这个函数在移除元素后,关联数组的对应关系不会改变,此函数的参数形式:

    array array_splice( array &$input, int $offset[, int $length = 0[, mixed $replacement]] )

    用来把数组中的一部分去掉并用其它值取代 。如果最后的参数 replaement不传,就是默认为把offset 开始的 如果是数字索引,返回的数组会重新编排索引值:

    $array = [0 => "a", 1 => "b", 2 => "c"];
    array_splice($array, 1, 1);

    返回的值:

    [
        [0] => a
        [1] => c
    ]

    可以看到索引被重新编排了。

    再深一步

    上面说的两个示例,都是单个元素的删除。下面说说移除多个数组元素。

    unset / arraysplice 用起来太繁琐了,要一个一个地操作。如果我们知道了数组元素的键,或者值,则可以使用 array_diff / array_diff_key 来进行批量操作。

    array_diff 函数

    比如已知要删除的元素的值,可以像下面这样移除:

    $array = [0 => "a", 1 => "b", 2 => "c"];

    $array = array_diff($array, ["a", "c"]);


    结果输出:

    [
        [1] => b
    ]

    数组的索引并不会被重建。

    array_diff_keys 函数

    如果已知要删除元素的索引,可以通过下面这样删除:

    $array = [0 => "a", 1 => "b", 2 => "c"];
    $array = array_diff_key($array, [0 => "xy", "2" => "xy"]);

    执行后输出:

    [
        [1] => b
    ]

    索引没有重建。

    写在最后

    本文我们通过几个示例,演示了数组移除元素的方式,不要再一个 for 循环走遍天下了。PHP 提供了许多有利于减少冗余代码的函数工具,我们应该用起来。

    以上就是php 数组中怎么移除元素的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:php
    上一篇:三分钟带你了解php正则常用元字符 下一篇:php数组怎么去掉第一个元素
    大前端线上培训班

    相关文章推荐

    • php怎么改变数组中的值• 汇总PHP常见数组函数与实例【基础】• php 数组值怎么转字符串• php怎么将json转换成数组

    全部评论我要评论

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

    PHP中文网