如何检查两个数组是否相同?

时间:2017-04-13 17:05:54

标签: php arrays multidimensional-array associative-array

我想检查两个数组是否相同。通常每个人都会使用这样的东西:

if($arrayA == $arrayB){
   //do something...
}

但我的问题是,如果数组包含相同的值,我该如何检查?

例如,数组A看起来像:

array(2) {
  [0]=>
  array(6) {
    ["price"]=>
    string(5) "50"
    ["shop"]=>
    string(4) "9509"
  }
  [1]=>
    array(6) {
    ["price"]=>
    string(5) "5"
    ["shop"]=>
    string(4) "9509"
  }
}

和数组B看起来像:

array(2) {
  [0]=>
  array(6) {
    ["price"]=>
    string(5) "5"
    ["shop"]=>
    string(4) "9509"
  }
  [1]=>
    array(6) {
    ["price"]=>
    string(5) "50"
    ["shop"]=>
    string(4) "9509"
  }
}

如您所见,只有内部数组已经转换(5& 50)。但我想成真。我只是想知道两个数组是否包含相同的信息。不,如果它们完全相同!

我该怎么检查?

问候,谢谢!

1 个答案:

答案 0 :(得分:0)

听起来你的数组里面包含不同类型的数据,这不是推荐的实现。

我的建议我的朋友是创建一个包含您需要的所有属性的对象,然后您可以覆盖扩展接口compare的方法comparable

如果您仍想比较数组,请尝试Arrays.equals(arr1, arr2),但它们不能是通用的