如何在 PHP 中按值而非键执行数组删除
Minahil Noor
2023年1月30日
本文将介绍在 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"
}