我有这个数据集可以使用:
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']);
这当然有效,但这些值是硬编码的,我想自动化它以通过它运行所有组合。我将如何检查是否:
- 用户
- 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]])
}
}