php array_diff_assoc()给出了错误的区别

时间:2012-03-27 07:39:21

标签: php multidimensional-array

我有两个数组,并且我使用 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 ) ) 

2 个答案:

答案 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] =>公共集))。