Php 是否检查数组中键值的所有组合?

Php 是否检查数组中键值的所有组合?,php,arrays,multidimensional-array,intersect,Php,Arrays,Multidimensional Array,Intersect,我要处理此数据集: Array ( [John Doe] => Array ( [137] => 7 [22] => 8 [145] => 7 ) [George] => Array ( [143] => 2 [18] => 7 ) [Alisa

我要处理此数据集:

Array
(
    [John Doe] => Array
        (
            [137] => 7
            [22] => 8
            [145] => 7
        )

    [George] => Array
        (
            [143] => 2
            [18] => 7
        )

    [Alisa Baumbach] => Array
        (
            [148] => 7
            [145] => 5
        )

)
现在,我想看看用户数组之间的密钥是否至少有一个匹配项。我将通过使用array\u intersect\u键来实现这一点:

$matches = array_intersect_key($user_cor['John Doe'], $user_cor['Alisa Baumbach']);
当然,这是可行的,但这些值是硬编码的,我想通过它自动运行所有组合。我将如何检查是否:

  • 用户1数据与用户2相交
  • 用户2数据与用户3相交
  • 用户1数据与用户3相交
当然,这已经缩小到3个比较,而不是6个,因为我删除了双倍,因为我只想要唯一的组合。我该怎么做呢

我知道这似乎相当典型,但我在措辞上有很多困难,更不用说寻找如何做到这一点的答案了


如果您能抽出时间来帮助我理解这个问题,我们将不胜感激。

类似下面的内容

$keys = array_keys($user_cor);
for ($i = 0;$i < count($keys);$i++) {
    for ($j = $i+1;$j < count($keys);$j++) {
        $matches[$i.",".$j] = array_intersect_key($user_cor[$keys[$i]], $user_cor[$keys[$j]])
    }
}
$keys=array\u keys($user\u cor);
对于($i=0;$i
类似于以下内容的内容

$keys = array_keys($user_cor);
for ($i = 0;$i < count($keys);$i++) {
    for ($j = $i+1;$j < count($keys);$j++) {
        $matches[$i.",".$j] = array_intersect_key($user_cor[$keys[$i]], $user_cor[$keys[$j]])
    }
}
$keys=array\u keys($user\u cor);
对于($i=0;$i
这是一个简单的
foreach($user=>myArray)
x2true,但我显然想输入更多数据。这是一个简单的
foreach($user=>myArray)
x2true,但我显然想输入更多数据。