如何在 PHP 中按值而非鍵執行陣列刪除

Minahil Noor 2023年1月30日
  1. 在 PHP 中使用 array_search()unset() 函式執行陣列的非鍵值刪除
  2. 在 PHP 中使用 array_diff() 函式執行按值而非按鍵刪除陣列的操作
如何在 PHP 中按值而非鍵執行陣列刪除

本文將介紹在 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"
}

相關文章 - PHP Array