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