在比较两个2D数组之间的关联行时,ARRAY_DIFF_ASSOC()给出了错误的差异 [英] While comparing associative rows between two 2d arrays, array_diff_assoc() gives the wrong difference

查看:0
本文介绍了在比较两个2D数组之间的关联行时,ARRAY_DIFF_ASSOC()给出了错误的差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个数组,我使用arraydiff_assoc()php函数获取差值,但它总是返回comm set作为差值,但它应该是新的q set这有什么问题,请帮助

数组--

Array ( [0] => Array ( [12] => new q sets ) [1] => Array ( [11] => common set ) ) 

Array ( [0] => Array ( [11] => common set ) ) 

使用ARRAY_DIFF_ASSOC()后

Array ( [1] => Array ( [11] => common set ) ) 

推荐答案

仅当(string) $elem1 === (string) $elem2时,来自key=>值对的两个值才被视为相等。换句话说,会进行严格的检查,因此字符串表示形式必须相同。

http://php.net/manual/en/function.array-diff-assoc.php

The (string) value of any array is "Array".因此,您对array_diff_assoc的调用实际上是在比较这两件事:

Array ( [0] => "Array" [1] => "Array" ) 
Array ( [0] => "Array" ) 

由于这两个数组之间的不同之处在于第一个数组中的[1]键/值对,因此您将得到该键/值对([1] => Array( [11] => common set ))。

这篇关于在比较两个2D数组之间的关联行时,ARRAY_DIFF_ASSOC()给出了错误的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆