我有这个数据集可以使用:
Array
(
[John Doe] => Array
(
[137] => 7
[22] => 8
[145] => 7
)
[George] => Array
(
[143] => 2
[18] => 7
)
[Alisa Baumbach] => Array
(
[148] => 7
[145] => 5
)
)
现在我想知道我的密钥之间的用户数组之间是否至少有一个匹配。我会通过使用array_intersect_key执行此操作:
$matches = array_intersect_key($user_cor['John Doe'], $user_cor['Alisa Baumbach']);
这是一种工作方式,但这些值是硬编码的,我想通过它自动运行所有组合。我将如何检查是否:
当然,由于我只想要独特的组合,所以这已经缩小为3次比较,而不是6次,因为我删除了双打。我该怎么做呢?
我知道这看起来很典型,除了我在措词方面有很多困难,更不用说寻找如何做到这一点的答案了。
在帮助我理解这个问题时,您将非常感激。
答案 0 :(得分:0)
如下所示?
$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]])
}
}