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。检查上的注释以获取多维数组差异。数组差异有什么问题?