PHP-如何正确的删除array中的一个元素

注意:本文最后更新于 5年 前。

数组是几乎所以编程语言里必有的数据结构,而在编程时,数组可以又与其他数组和数据结构相结合,构成如二维数组三维数组233维数组乱七八糟什么都不是的数组。而数组也是最基本的可迭代的数据结构,常与for(foreach)相结合,形成。。。

好了我tm实在编不下去了,下面步入正题。

在PHP中,删除array中的一个元素有两种方法

1.array_splice($array, $offset, 1);

示例代码:

$array = array('aaa', 'bbb', 'ccc', 'ddd');
$offset = 1;
array_splice($array, $offset, 1);

var_dump($array);

/* 输出:

array(3) {
  [0]=>
  string(3) "aaa"
  [1]=>
  string(3) "ccc"
  [2]=>
  string(3) "ddd"
}
*/

注意,不能写成array_splice($array, $offset);,一定要写上最后那个为1的参数,否则会把数组直接从$key的位置删到末尾!
而且array_splice中所用的是偏移量,而不是key,这点要注意!

2.unset($array[$key]);

示例代码:

<?php
$array = array('aaa', 'bbb', 'ccc', 'ddd');
$key = 1;
unset($array[$key]);

var_dump($array);

/* 输出:

array(3) {
  [0]=>
  string(3) "aaa"
  [2]=>
  string(3) "ccc"
  [3]=>
  string(3) "ddd"
}
*/

注意,元素的key没有重新排序,而是直接从0跳到了2,这可能会导致一些潜在的问题,你可以在后面使用array_values();来重新排序key

作者:WuSiYu

学生,Web开发者,智能硬件&IOT爱好者

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注