如何从 PHP 中的数组中删除元素

Minahil Noor 2023年1月30日
  1. 使用 unset() 函数从 PHP 数组中删除一个元素
  2. 使用 array_splice() 函数从 PHP 中的数组中删除一个元素
  3. 使用 array_diff() 函数从 PHP 中的数组中删除一个元素
如何从 PHP 中的数组中删除元素

在本文中,我们将介绍从 PHP 中的数组中删除元素的方法。

  • 使用 unset() 函数
  • 使用 array_splice() 函数
  • 使用 array_diff() 函数

使用 unset() 函数从 PHP 数组中删除一个元素

内置函数 unset() 用于删除存储在变量中的值。它仅适用于局部变量。它不反映其在全局变量上的行为。我们可以使用此函数从数组中删除元素。使用此函数的正确语法如下

unset($variableName);

它具有一个必需参数。我们希望删除的值作为参数传递给此函数。

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

unset($flowers[1]);
echo "The array is:\n";
print_r($flowers);
?>

此函数一次可以删除一个值。数组的名称与元素索引($flowers[1])一起作为参数传递。此函数不会更改索引值。索引值与以前相同。

输出:

The array is:
Array
(
    [0] => Rose
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

如你所见,在应用 unset 函数后,索引'1’丢失了。

使用 array_splice() 函数从 PHP 中的数组中删除一个元素

函数 array_splice() 用于将元素添加到数组或从数组中删除元素。使用此函数的正确语法如下

array_splice($arrayName, $startingIndex, $numOfElements, $array2Name);

它有四个参数。

  1. $arrayName 是必须的参数。是其元素将被删除的数组。
  2. $startingIndex 是我们希望删除的元素的索引。
  3. $numOfElements 是我们要从起始索引中删除的元素数。
  4. $array2Name 是我们要添加的元素的数组。

$numOfElements$array2Name 是可选的。

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

array_splice($flowers, 4, 3);
echo "The array is:\n";
print_r($flowers);
?>

数组 $flowers 作为参数传递给该函数,以及起始索引 4 和我们要删除的元素数 3。这样,我们可以从一个数组中删除多个元素。

输出:

The array is:
Array
(
    [0] => Rose
    [1] => Lili
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Daisy
)
注意

unset 不同,array_splice 函数将自动为键重新索引。

在我们删除之前的三个元素之后,雏菊的新索引为 4,而不是原始索引-7。

使用 array_diff() 函数从 PHP 中的数组中删除一个元素

内置函数 array_diff() 查找两个或多个数组之间的差异。它可以用来从数组中删除多个值而不会影响它们的索引。使用此函数的正确语法如下

array_diff($array1, $array2, $array3, ... , $arrayN);

它以 N 个数组作为参数。它将第一个数组与所有其他数组进行比较,并返回一个 array,其中包含其他数组中不存在的第一个数组的所有元素。

<?php
//Declare the array
$flowers = array(
                "Rose",
                "Lili",
                "Jasmine",
                "Hibiscus",
                "Tulip",
                "Sun Flower",
                "Daffodil",
                "Daisy");

$flowers = array_diff($flowers, array("Rose","Lili"));
echo "The array is:\n";
print_r($flowers);
?>

在这里,我们传递的第一个数组是 $flowers,第二个数组包含我们要从 $flowers 中删除的元素。此函数不会更改数组元素的索引。

输出:

The array is:
Array
(
    [2] => Jasmine
    [3] => Hibiscus
    [4] => Tulip
    [5] => Sun Flower
    [6] => Daffodil
    [7] => Daisy
)

相关文章 - PHP Array