从PHP中的数组删除元素

数组使用基于索引的系统(从0开始)将元素存储在一起。虽然我们可以简单地将值设置为NULL,但它仍将是数组的一部分并占用内存空间。但是,使用高级PHP内置方法,我们可以轻松地从数组中删除元素。有2种方法可以从PHP中的数组中删除元素,下面将对此进行讨论。

1)使用 unset()

unset()方法获取需要从数组中删除的元素并将其删除。请注意,当您使用unset()数组键时,键将不会重新索引,这意味着该数组中将不存在特定的索引,并且如果被访问将不会返回值。考虑这个例子

<?php

    $array = array(0 => "apple", 1 => "banana", 2 => "carrot");

    //unset the second element of array
    unset($array[1]);

    //Print the array
    echo $array; // Output: (0 => "apple", 2 => "carrot")

?>

我们使用键作为索引定义关联数组,并从中取消设置第二个元素。现在我们剩下两个元素,它们之间没有第二个索引。如果要删除和移动元素,则需要使用下面讨论的array_splice方法。

2)使用array_splice()

unset()除了重新排列和移动元素以填充空白外,它的功能与其他功能相同。如果您使用array_splice(),则键将自动重新索引,但是关联键不会与array_values()相对,后者会将所有键转换为数字键。

另外,array_splice()需要将offset作为第二个参数,这意味着要删除的元素数量。

<?php

    $array = array(0 => "apple", 1 => "banana", 2 => "carrot");

    //从1个索引处开始拼接数组,
    //即第二个元素并删除1个元素。
    array_splice($array, 1, 1);

    //Print the array
    echo $array; // Output: (0 => "apple", 1 => "carrot")

?>

从输出中可以看到,该数组删除了第二个元素,但此后重新索引了该数组。

如果您喜欢这篇文章,请在下面分享您的想法。