Php 确定两个数组中的键/值是否相同的最简单方法

Php 确定两个数组中的键/值是否相同的最简单方法,php,arrays,Php,Arrays,我有一个如下所示的数组: [items] => Array ( [0] => Array ( [qty] => 1 [class] => P ) [1] => Array ( [qty] => 1 [class] => P ) [2] => Array

我有一个如下所示的数组:

[items] => Array
(
    [0] => Array
        (
            [qty] => 1
            [class] => P
        )

    [1] => Array
        (
            [qty] => 1
            [class] => P
        )

    [2] => Array
        (
            [qty] => 1
            [class] => S
        )

)

确定所有内部数组中的[class]值是否相同的最简单方法是什么?我是不是要把它们都循环一遍,一个一个地比较?还是有更好的方法?

根据评论进行编辑

仅基于
比较检查相等性的解决方案

array_diff()
返回不在被比较数组中的元素。计数返回的元素(
count()
)允许检测差异

请注意,
array_diff()
可能需要两个以上的数组来检查是否相等。如果有固定数量的数组,只需执行以下操作即可

// Compare 3 arrays
if (count(array_diff($array['items'][0], $array['items'][1], $array['items'][2]))) {
    // Arrays differ
}
$n=count($array['items']);
$flag=0;

对于($i=0;$iI不认为这会起作用,因为您正在测试每个内部数组。我需要专门测试每个数组中一个键的值。例如,如果我向第一个内部数组添加一个元素,它会中断。更新了我的答案,使您有两个解决方案。谢谢。因此,基本上,正如我最初问的那样除了通过数组循环进行比较外,没有其他方法。当然,您可以检查
if(A&&B&&C)
但是,如果项目的数量未知或较大,并且由于您在其他元素中测试单个值,在PHP中需要逐个检查。因此答案是肯定的-我将不得不循环检查所有项目。如果没有更好的方法,这就是我所需要的。如果类元素在每个ar中处于不同的位置,这也不起作用雷,你看,可能是
$n = count($array['items']);
for($i=1 ; $i<$n ; $i++) 
   if (count(array_diff($array['items'][0], $array['items'][$i])))
      break;

if ($i >= $n) {
     // they are equal
}
// Compare 3 arrays
if (count(array_diff($array['items'][0], $array['items'][1], $array['items'][2]))) {
    // Arrays differ
}
$n = count($array['items']);
$flag=0;
for($i=0 ; $i<$n ; $i++)
{
  if($i!=0)
  {
       if($array['items'][$i][class]!=$array['items'][$i-1][class])
       {
              $flag=1;
        }
  }

}

if($flag==1)
{
  // they are equal
}