php数组_diff将数组与新数组进行比较
我有两个阵列:php数组_diff将数组与新数组进行比较,php,arrays,Php,Arrays,我有两个阵列: $userBuildingIds print_r(): 和$allrequiredds 打印: Array ( [0] => 4 ) Array ( [0] => 4 [1] => 1 ) 现在我想检查$userBuildingIds中是否存在一个元素 $AllRequiredId数组。如果是这样,我想得到一个包含所有元素的新数组,它们不在第一个数组中,如下所示: Array ( [0] => 1 ) (因为1不在
$userBuildingIds
print_r():
和$allrequiredds
打印:
Array
(
[0] => 4
)
Array
(
[0] => 4
[1] => 1
)
现在我想检查$userBuildingIds中是否存在一个元素
$AllRequiredId数组。如果是这样,我想得到一个包含所有元素的新数组,它们不在第一个数组中,如下所示:
Array
(
[0] => 1
)
(因为1不在$userBuildingIds中)
我用array_diff
尝试了这个方法,但它给出了这个结果(使用array 2键):
是否可以获取一个数组,其中包含数组
$allRequiredIds
中的所有元素,而这些元素不在$userBuildingIds
中,但是,如果不从$allrequiredds
?复制密钥,则如果您不关心返回数组的密钥,则可以在该数组上使用它来获取一个新数组,该数组的密钥以0
开头
守则如下:
$diffIds = array_values(array_diff($allRequiredIds, $userBuildingIds));
它从
$allRequiredIds
生成一个值列表,该列表在$userBuildingIds
中不存在。返回的列表具有以0
开头的数字键(与$allrequiredds
中的原始键没有关联是$userBuildingIds
故意保留的)。如果您不关心返回数组的键,则可以使用它来获得一个新数组,该数组的键以0
开头。因此,完整的代码将是array\u values(array\u diff($allRequiredIds,$userBuildingIds))
。谢谢,这将起作用。。你可以回答这个问题,所以我可以接受你的答案。我不确定你想得到什么,以及数组中的值有多不同。但我相信您知道,$arr1=[1,1,1,1,1]$arr2=[1,2];阵列差异($arr1,$arr2)代码>是否将返回emty数组?这真的是你的观点吗?
$diffIds = array_values(array_diff($allRequiredIds, $userBuildingIds));