Мне нужно создать массив только уникальных пар, чтобы не было дубликатов.Проблема в том, что когда просто перебираем друг друга, по какой-то причине последняя пара обычно дублируется.
Итак, вот небольшой пример:
<?php
$teams = [
['id' => 1],
['id' => 2],
['id' => 3],
['id' => 4],
];
foreach ($teams as $team_a) {
foreach ($teams as $team_b) {
if ($team_a['id'] !== $team_b['id']) {
$pairs[] = [$team_a['id'], $team_b['id']];
}
}
}
?>
Возвращает что-то вроде этого:
0: [1, 2]
1: [1, 3]
2: [1, 4]
3: [2, 1]
4: [2, 3]
5: [2, 4]
6: [3, 1]
7: [3, 2]
8: [3, 4]
...
Итак, вы можете видеть, что некоторые пары одинаковы, например, [1, 2]
и [2, 1]
.А после половины итераций остаются только повторы.
Какой самый эффективный способ итерации подобен этому и быть уверенным, что есть только уникальные пары?
Спасибо!