实战需求
有没有一种简单的方法可以使用 PHP 从数组中删除元素,从而foreach ($array)不再包含该元素?
我认为将其设置为null可以做到这一点,但显然它不起作用。
解决方案
有多种方法可以删除数组元素,其中一些方法对某些特定任务比其他方法更有用。
删除单个数组元素
如果您只想删除一个数组元素,您可以使用unset()或\array_splice()。
如果您知道值但不知道删除元素的键,您可以使用它\array_search()来获取键。这仅在元素不多次出现时才有效,因为\array_search仅返回第一次命中。
unset()
请注意,当您使用unset()数组键时不会改变。如果你想重新索引你可以使用\array_values()after的键unset(),这会将所有键转换为从 0 开始的数字枚举键。
代码:
$array = [0 => "a", 1 => "b", 2 => "c"];
unset($array[1]);
// ↑ Key which you want to delete
输出:
[
[0] => a
[2] => c
]
\array_splice() 方法
如果您使用\array_splice()这些键将自动重新索引,但关联键不会改变 — 与 相反\array_values(),它将所有键转换为数字键。
\array_splice()需要offset,而不是key,作为第二个