如何从 PHP 中的数组中删除元素
Minahil Noor
2023年1月30日
2020年6月9日
-
使用
unset()
函数从 PHP 数组中删除一个元素 -
使用
array_splice()
函数从 PHP 中的数组中删除一个元素 -
使用
array_diff()
函数从 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);
它有四个参数。
$arrayName
是必须的参数。是其元素将被删除的数组。$startingIndex
是我们希望删除的元素的索引。$numOfElements
是我们要从起始索引中删除的元素数。$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
)