php array_diff将数组与新数组进行比较

时间:2015-01-29 14:36:38

标签: php arrays

我有两个数组:

$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中的键?

1 个答案:

答案 0 :(得分:3)

如果您不关心返回的数组的键,那么您可以在其上使用array_values()来获取具有以0开头的键的新数组。

代码将是:

$diffIds = array_values(array_diff($allRequiredIds, $userBuildingIds));

它会生成$allRequiredIds$userBuildingIds中不存在的0值列表。返回的列表包含以$allRequiredIds开头的数字键(与$userBuildingIds的原始密钥无关联{{1}}是故意保留的。