检查多维数组中的差异

时间:2017-11-24 11:40:39

标签: php arrays array-difference

我有一组每次都可以不同的数组。下面的一个包含和数组,其中包含更多不同大小的数组。 我需要循环遍历每个数组并检查它们之间是否存在任何差异。 因此,对于给定的数组,所有可能的组合如下:

array_diff($arrays[0][0],$arrays[1][0]);
array_diff($arrays[0][1],$arrays[1][1]);
array_diff($arrays[0][1],$arrays[1][2]);


$arrays = [
0 => [
  0 =>  [
     9 => "39"
     10 => "40"
     14 => "62"
  ]
  1 =>  [
     9 => "38"
     10 => "40"
     14 => "63"
  ]
]
1 => [
   0 => [
     9 => "39"
     10 => "40"
     14 => "62"
  ]
  1 =>  [
     9 => "39"
     10 => "40"
     14 => "64"
  ]
  2 =>  [
     9 => "39"
     10 => "41"
     14 => "62"
  ]
]
]

这就是我的尝试:

foreach($combinations as $set_id => $comb)
    {
        foreach($comb as $key => $selections)
        {

            if(isset($combinations[++$set_id][$key])){
                if(!empty(array_diff($selections, $combinations[++$set_id][$key]))){
                    return false;
                }
            }

        }

    }

我想知道另一个数组中是否包含相同的数组。你能从我的例子中看到array [0]和array [1]包含不同的数组组合。因此,如果其中一个组合完全相同,我需要显示错误。

在这种情况下array_diff($ arrays [0] [0],$ arrays [1] [0]);应该返回一个空数组,这意味着没有区别,我应该显示和错误。

1 个答案:

答案 0 :(得分:0)

我制定了解决方案。

这是:

lists