如何从PHP的数组中删除值?

php
2022-08-30 22:56:33

是否有 PHP 函数可以从数组中删除某些数组元素?

例如,我有一个数组()带有值,另一个数组()需要从中删除值。AB

想要从数组中删除数组中的值?AB


答案 1

使用 array_diff()

$new_array = array_diff($arrayB, $arrayA);

将返回一个数组,其中包含不在 中的所有元素。$arrayB$arrayA

要使用关联数组执行此操作,请使用 array_diff_assoc()。

要删除单个值,请使用:

unset($array[$key]);

当然,您可以循环它来执行数组函数的等效操作,但这毫无意义。


答案 2

这取决于您所说的“删除”是什么意思。

您可以使用 unset() 函数从数组中删除键,但这不会重新索引它。例如,如果您有:

$a = array(1 => 'one', 2 => 'two', 3 => 'three');

然后您致电

unset($a[2]);

你最终会得到类似的东西

(1 => 'one', 3 => 'three');

如果需要按顺序索引数组,则可以获取未放置的数组并将其馈送到 array_values() 中,这将返回一个具有按顺序索引键的新数组。

回到您的原始方案,正如其他人所观察到的那样,array_diff将为您完成工作,但请注意,它不会执行索引检查。如果需要,请改用array_diff_assoc。


推荐