如何在 PHP 中按值而非鍵執行陣列刪除
Minahil Noor
2023年1月30日
2020年11月24日
本文將介紹在 PHP 中從陣列中刪除值的不同方法。
在 PHP 中使用 array_search()
和 unset()
函式執行陣列的非鍵值刪除
按值而非鍵進行陣列刪除的主要程式是先找到值。我們可以在找到值之後再進行刪除。我們將使用 array_search()
函式找到該值,並使用 unset()
函式刪除該值。unset()
函式會重置一個變數。使用這些函式的正確語法如下。
array_search()
的語法
array_search($value, $array, $strict);
內建函式 array_search()
有三個引數。它的詳細引數如下
引數 | 說明 | |
---|---|---|
$value |
強制 | 它是我們要在陣列中搜尋的值 |
$array |
強制 | 它是一個陣列,我們將在其中搜尋給定的值。 |
$strict |
可選 | 如果這個引數設定為 True ,那麼該函式也將搜尋陣列中的相同元素。 |
該函式返回給定值的鍵。
unset()
的語法
unset($variable1, $variable2, ..., $variableN);
內建函式 unset()
有多個引數。其詳細引數如下
引數 | 說明 | |
---|---|---|
$variable1 , $variable2 , $variableN |
強制 | 它是我們要取消設定的變數或資料結構。至少有一個變數是必須的。 |
這個函式不返回任何內容。
在 PHP 中從陣列中刪除值的示例
下面的程式顯示瞭如何使用這些函式在 PHP 中按值而不是鍵執行陣列刪除。
<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy");
echo("Array before deletion: \n");
var_dump($array);
$value = "Jasmine";
if (($key = array_search($value, $array)) !== false) {
unset($array[$key]);
}
echo("Array after deletion: \n");
var_dump($array);
?>
輸出:
Array before deletion:
array(6) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[2]=>
string(7) "Jasmine"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}
Array after deletion:
array(5) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}
在 PHP 中使用 array_diff()
函式執行按值而非按鍵刪除陣列的操作
在 PHP 中,我們也可以使用 array_diff()
函式來執行按值而非鍵刪除陣列。這個函式計算一個給定陣列與另一個陣列的差值。正確使用該函式的語法如下。
語法
array_diff($array, $Arr1, $Arr2, ...,$ArrN);
函式 array_diff()
接受 N+1 個引數。它的詳細引數如下。
引數名稱 | 說明 | |
---|---|---|
$array |
強制 | 它是我們要從其中刪除一個值的主陣列 |
$Arr1 、$Arr2 、$ArrN |
強制 | 就是我們要刪除的陣列。該函式將取其與陣列的差值,如果存在,則將其從陣列中刪除。 |
按值而不是按鍵執行陣列刪除的程式如下。
<?php
$array = array("Rose","Lili","Jasmine","Hibiscus","Daffodil","Daisy");
echo("Array before deletion: \n");
var_dump($array);
$value = array("Jasmine");
$array = array_diff( $array, $value);
echo("Array after deletion: \n");
var_dump($array);
?>
輸出:
Array before deletion:
array(6) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[2]=>
string(7) "Jasmine"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}
Array after deletion:
array(5) {
[0]=>
string(4) "Rose"
[1]=>
string(4) "Lili"
[3]=>
string(8) "Hibiscus"
[4]=>
string(8) "Daffodil"
[5]=>
string(5) "Daisy"
}