如何從 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
)