如何在PHP中从数组中删除一个元素(附代码)

196 阅读1分钟

在本教程中,我们将检查如何在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)