插件窝 干货文章 用PHP删除数组中的值,有哪些方法?

用PHP删除数组中的值,有哪些方法?

array 数组 删除 元素 572    来源:    2025-03-16

在PHP中,删除数组中的值有多种方法,具体取决于你想要删除的元素的位置、键名或值。以下是几种常见的方法:

1. 使用 unset() 函数

unset() 函数可以删除数组中指定键的元素。

$array = ['a' => 1, 'b' => 2, 'c' => 3];
unset($array['b']); // 删除键为 'b' 的元素
print_r($array); // 输出: Array ( [a] => 1 [c] => 3 )

2. 使用 array_splice() 函数

array_splice() 函数可以删除数组中的一段元素,并可以用新元素替换它们。

$array = [1, 2, 3, 4, 5];
array_splice($array, 2, 1); // 从索引 2 开始删除 1 个元素
print_r($array); // 输出: Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 )

3. 使用 array_diff() 函数

array_diff() 函数可以删除数组中指定的值。

$array = [1, 2, 3, 4, 5];
$array = array_diff($array, [3]); // 删除值为 3 的元素
print_r($array); // 输出: Array ( [0] => 1 [1] => 2 [3] => 4 [4] => 5 )

4. 使用 array_filter() 函数

array_filter() 函数可以通过回调函数过滤数组中的元素。

$array = [1, 2, 3, 4, 5];
$array = array_filter($array, function($value) {
    return $value != 3; // 删除值为 3 的元素
});
print_r($array); // 输出: Array ( [0] => 1 [1] => 2 [3] => 4 [4] => 5 )

5. 使用 array_pop()array_shift() 函数

  • array_pop() 删除数组中的最后一个元素。
  • array_shift() 删除数组中的第一个元素。
$array = [1, 2, 3, 4, 5];
array_pop($array); // 删除最后一个元素
print_r($array); // 输出: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

$array = [1, 2, 3, 4, 5];
array_shift($array); // 删除第一个元素
print_r($array); // 输出: Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 )

6. 使用 array_values() 重新索引数组

在使用 unset()array_diff() 等函数删除元素后,数组的索引可能会不连续。可以使用 array_values() 函数重新索引数组。

$array = [1, 2, 3, 4, 5];
unset($array[2]); // 删除索引为 2 的元素
$array = array_values($array); // 重新索引数组
print_r($array); // 输出: Array ( [0] => 1 [1] => 2 [2] => 4 [3] => 5 )

7. 使用 array_unique() 函数

array_unique() 函数可以删除数组中的重复值。

$array = [1, 2, 2, 3, 4, 4, 5];
$array = array_unique($array); // 删除重复值
print_r($array); // 输出: Array ( [0] => 1 [1] => 2 [3] => 3 [4] => 4 [6] => 5 )

总结

  • unset():删除指定键的元素。
  • array_splice():删除指定位置的元素。
  • array_diff():删除指定的值。
  • array_filter():通过回调函数过滤数组。
  • array_pop()array_shift():删除数组的最后一个或第一个元素。
  • array_values():重新索引数组。
  • array_unique():删除数组中的重复值。

根据你的具体需求选择合适的方法来删除数组中的值。