我有两个数组,并且我使用 array_diff_assoc() php函数来获取差异,但它总是返回comm设置为差异,但它应该是新的q设置什么是错的这个,请帮忙
阵列 -
Array ( [0] => Array ( [12] => new q sets ) [1] => Array ( [11] => common set ) )
Array ( [0] => Array ( [11] => common set ) )
使用array_diff_assoc()o p
之后Array ( [1] => Array ( [11] => common set ) )
答案 0 :(得分:6)
key =>中的两个值仅当
(string) $elem1 === (string) $elem2
时,值对才被视为相等。换句话说,会进行严格检查,因此字符串表示必须相同。
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 )
)。
答案 1 :(得分:1)
在array_diff_assoc()中,还会比较键。由于[0]在第二个数组中可用,[1]在第二个数组中不可用,因此结果为Array([1] =>数组([11] =>公共集))。