У меня есть этот набор данных для работы с:
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, так как я убрал двойные, потому что я хочу только уникальные комбинации. Как бы я поступил так?
Я знаю, что это кажется довольно типичным, и все, но у меня много трудностей с формулировкой этого, не говоря уже о поиске ответов о том, как это сделать.
Ваше время было бы очень полезно, чтобы помочь мне понять эту проблему.
Что-то вроде следующего?
$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]])
}
}
Других решений пока нет …