php 数组中怎么移除元素

藏色散人
Lepaskan: 2023-03-08 21:26:02
asal
3923 orang telah melayarinya

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

php 数组中怎么移除元素

本文操作环境: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]);
Salin selepas log masuk

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

[ [0] => a [2] => c ]
Salin selepas log masuk

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

【推荐学习:PHP视频教程

array_splice 函数

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

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

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

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

返回的值:

[ [0] => a [1] => c ]
Salin selepas log masuk

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

再深一步

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

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

array_diff 函数

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

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

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


Salin selepas log masuk

结果输出:

[ [1] => b ]
Salin selepas log masuk
Salin selepas log masuk

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

array_diff_keys 函数

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

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

执行后输出:

[ [1] => b ]
Salin selepas log masuk
Salin selepas log masuk

索引没有重建。

写在最后

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

Atas ialah kandungan terperinci php 数组中怎么移除元素. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!