我有两个数组:
$userBuildingIds
的print_r():
Array
(
[0] => 4
)
和$allRequiredIds
的print_r:
Array
(
[0] => 4
[1] => 1
)
现在我想检查是否存在$ userBuildingIds的一个元素 $ allRequiredIds数组。如果是这样,我想得到一个新的数组,其中所有元素都不在第一个数组中,如下所示:
Array
(
[0] => 1
)
(因为1不在$ userBuildingIds中)
我用array_diff
尝试这个但是它给了我这个结果(用数组2的键):
Array
(
[1] => 1
)
是否有可能获得一个数组,其中数组$allRequiredIds
的所有元素都不在$userBuildingIds
中,但没有复制$allRequiredIds
中的键?
答案 0 :(得分:3)
如果您不关心返回的数组的键,那么您可以在其上使用array_values()
来获取具有以0
开头的键的新数组。
代码将是:
$diffIds = array_values(array_diff($allRequiredIds, $userBuildingIds));
它会生成$allRequiredIds
中$userBuildingIds
中不存在的0
值列表。返回的列表包含以$allRequiredIds
开头的数字键(与$userBuildingIds
的原始密钥无关联{{1}}是故意保留的。