在比较两个2D数组之间的关联行时,ARRAY_DIFF_ASSOC()给出了错误的差异 [英] While comparing associative rows between two 2d arrays, array_diff_assoc() gives the wrong difference
本文介绍了在比较两个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屋!
查看全文