在本教程中,我们将检查如何在PHP中删除数组中的元素。
我们可以使用unset() 函数来删除一个数组的特定索引。
使用unset()从数组中删除一个元素的步骤
假设你有一个数组,即$array = [ 'delete', 'an', 'element', 'from', 'an', 'array' ]; 。你想从其中删除项目'element' 。你需要传递该特定元素的索引号,即**'element'。在我们的例子中,它是2:
<?php
$array = [ 'delete', 'an', 'element', 'from', 'an', 'array' ];
unset( $array[2] );
var_dump( $array );
输出结果将是:
array (size=5)
0 => string 'delete' (length=6)
1 => string 'an' (length=2)
3 => string 'from' (length=4)
4 => string 'an' (length=2)
5 => string 'array' (length=5)
你也可以通过将多个变量传入unset() ,从一个数组中删除多个元素:
<?php
$array = [ 'delete', 'an', 'element', 'from', 'an', 'array' ];
unset( $array[1], $array[3], $array[4] );
var_dump( $array );
输出结果将是:
array (size=3)
0 => string 'delete' (length=6)
2 => string 'element' (length=7)
5 => string 'array' (length=5)
但问题是,如果你想再次打印该数组中的删除元素索引,它会显示一个错误:
<?php
$array = [ 'delete', 'an', 'element', 'from', 'an', 'array' ];
unset( $array[1], $array[3], $array[4] );
echo $array[1];
输出结果将是:
Notice: Undefined offset: 1
为了摆脱这个错误,我们需要重新索引这个数组。
如何在删除一个数组中的元素后重新索引?
为了重新索引数组,我们可以使用PHParray_values() 函数:
<?php
$array = [ 'delete', 'an', 'element', 'from', 'an', 'array' ];
unset( $array[1], $array[3], $array[4] );
$array = array_values( $array );
var_dump($array);
其输出结果将是:
array (size=3)
0 => string 'delete' (length=6)
1 => string 'element' (length=7)
2 => string 'array' (length=5)
基于键删除一个数组元素
要从一个关联数组中删除元素,你可以简单地将键传递给unset():
<?php
$user = array(
"name" => "John",
"address" => "NY",
"age" => "35",
);
unset($user['address']);
var_dump($user);
输出结果:
array (size=2)
'name' => string 'John' (length=4)
'age' => string '35' (length=2)