在比较两个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 )
)。
相关文章