Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 阵列差分_Php_Arrays - Fatal编程技术网

Php 阵列差分

Php 阵列差分,php,arrays,Php,Arrays,我需要得到这两个数组之间的差异,我尝试了array\u diff($array1,$array2)但没有成功,你知道吗 阵列1 Array ( [0] => Array ( [status] => 61192106047320064 ) [1] => Array ( [status] => 61185038284357632 ) [2

我需要得到这两个数组之间的差异,我尝试了
array\u diff($array1,$array2)
但没有成功,你知道吗

阵列1

Array
(
    [0] => Array
        (
            [status] => 61192106047320064
        )

    [1] => Array
        (
            [status] => 61185038284357632
        )

    [2] => Array
        (
            [status] => 61182890951720960
        )

)
阵列2

Array
(
    [0] => Array
        (
            [status] => 61185038284357632
        )

    [1] => Array
        (
            [status] => 61182890951720960
        )

)
提前感谢。

根据

此函数仅检查n维数组的一维。当然,您可以使用array_diff($array1[0],$array2[0]);检查更深的维度

因此,不能直接区分这些数组的第二维度


相反,您可以使用提取
状态
值,另存为两个一维数组,然后使用
数组_diff
。如果您有多个键,请使用for循环。

看看这段代码,它是cakephp的一部分,但您可以修改/删除它

医生呢


也许我有点误解,但你就不能针对你的具体问题这样做吗

$newStatuses = array();

foreach($array1 as $element1) {
    foreach($array2 as $element2) {
        if($element1['status'] == $element2['status']) {
            continue 2;
        }
    }

    $newStatuses[] = $element1;
}
$newstatus的每个元素都将是一个数组,其中包含array1中不在array2中的“status”元素

那么,$newstatus就是这样的:

Array
(
    [0] => Array
        (
            [status] => 61192106047320064
        )

)

定义差异是否需要所有差异,或者如果array1[0]==array2[0],是否需要打印差异。显示一些您尝试过的代码。你搜索数组的算法是什么?你是如何定义差异的?集合差,对称差,元素必须具有相同的数组位置。。。?你认为结果会是什么?第一个数组有新的结果,第二个数组用于比较值而不是索引,我需要获得数组之间的差异并将结果放入数据库,期望first数组的[status]=>61192106047320064。检查上的注释以获取多维数组差异。数组差异有什么问题?