php 数组中怎么移除元素

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

php 数组中怎么移除元素

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

引言

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

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

立即学习“PHP免费学习笔记(深入)”;

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

学习时间

大致上说,移除数组元素,有两个常用方法,一个是 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 数组中怎么移除元素的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2518158.html

(0)
上一篇 2025年3月5日 16:10:38
下一篇 2025年3月5日 16:10:52

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 三分钟带你了解php正则常用元字符

    正则表达式的威力源于它可以在模式中拥有选择和重复的能力。一些字符被赋予特殊的涵义,使其不再单纯的代表自己,模式中的这种有特殊涵义的编码字符称为元字符。下面一起来看看常用的元字符吧。 PHP中正则表达式常用元字符 (1) d匹配任意一个十进制…

    2025年3月5日
    000
  • php数组怎么去掉第一个元素

    php数组去掉第一个元素的方法:1、通过“array_shift($user);”方法删除数组的第一个元素;2、通过“array_splice($user,1);”方法删除数组第一个元素。 本文操作环境:Windows7系统、PHP7.1版…

    2025年3月5日
    200
  • php怎么去掉斜线

    在php中可以通过stripslashes函数去掉斜线,该函数的作用就是反引用一个引用字符串,其使用语法是“string stripslashes (string $str)”。 本文操作环境:Windows7系统、PHP7.1版,DELL…

    2025年3月5日
    200
  • php如何实现转化为二进制字符串

    php实现字符串转化为二进制字符串的方法:首先创建一个PHP示例文件;然后通过“function StrToBin($str){…}”方法将字符串转换成二进制即可。 本文操作环境:Windows7系统、PHP7.1版,DELL …

    2025年3月5日
    200
  • php怎么去掉错误提示

    php去掉错误提示的方法:1、在php .ini中设置“display_errors=Off”;2、在PHP页面中添加“error_reporting(E_ALL^E_NOTICE^E_WARNING);”语句来实现关闭PHP的错误提示。 …

    2025年3月5日
    200
  • linux php怎么判断是否安装成功

    linux php判断是否安装成功的方法:首先打开命令窗口;然后输入并执行命令“#php -v”,如果显示php的相关详细信息,则表示php已安装成功。 本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑 #php -v…

    2025年3月5日
    200
  • php怎么删除属性

    php删除属性的方法:首先创建一个PHP示例文件;然后通过“unset($user->name);”语句删除对象的属性即可。 本文操作环境:Windows7系统、PHP7.1版,DELL G3电脑 php中删除对象的某一属性 id =…

    2025年3月5日
    200
  • php验证码一直错误怎么办

    php验证码一直错误的解决办法:1、修改php-fpm的启动用户,将用户改为和用户组改为apache;2、在php代码中增加时区设置,语句如“date_default_timezone_set(‘PRC’);”。 本文操作环境:Window…

    2025年3月5日
    200
  • 浅谈PHP时间戳,分享获取/格式化时间戳的几种方式

    本篇文章带大家了解一下php时间戳,简单介绍一下获取/格式化unix时间戳的几种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 一、设置时区(默认时区是UTC) date_default_timezone_set设定…

    2025年3月5日
    200
  • 深入解析PHP正则模式修正符

    今天我们就向大家具体讲解了php正则模式修正符的相关概念,希望对大家有所帮助。 模式修正符:模式修正符是标记在整个模式之外的。模式修正符中有几个常用的,分别是i、m、s、u,下面我们来具体了解一下。 修正符i 进行匹配时不区分大小写,//如…

    2025年3月5日
    200

发表回复

登录后才能评论