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