温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php数组中如何移除元素

发布时间:2021-03-22 11:05:23 来源:亿速云 阅读:305 作者:小新 栏目:编程语言

小编给大家分享一下php数组中如何移除元素,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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

引言

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
]

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

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
]

索引没有重建。

以上是“php数组中如何移除元素”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI