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

Rol*_*and 17 php

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

例如,我有一个A带有值的array()和另一个B需要删除值的array().

想要A从数组中删除数组中的值B吗?

cle*_*tus 32

使用 array_diff()

$new_array = array_diff($arrayB, $arrayA);
Run Code Online (Sandbox Code Playgroud)

与所有从元件将返回一个数组$arrayB$arrayA.

要使用关联数组来执行此操作array_diff_assoc().

要删除单个值,请使用:

unset($array[$key]);
Run Code Online (Sandbox Code Playgroud)

你当然可以循环它来做相当于数组函数但是没有意义.


pet*_*erb 5

这取决于你的意思"删除".

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

$a = array(1 => 'one', 2 => 'two', 3 => 'three');
Run Code Online (Sandbox Code Playgroud)

然后你打电话

unset($a[2]);
Run Code Online (Sandbox Code Playgroud)

你最终会得到类似的东西

(1 => 'one', 3 => 'three');
Run Code Online (Sandbox Code Playgroud)

如果需要对数组进行顺序索引,可以使用未设置的数组并将其提供给array_values(),这将返回一个带有顺序索引键的新数组.

回到原来的场景,正如其他人观察到的那样,array_diff会为你完成这项工作,但请注意它不会进行索引检查.如果需要,请使用array_diff_assoc.