Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组_diff将数组与新数组进行比较_Php_Arrays - Fatal编程技术网

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));