【发布时间】:2020-11-22 20:20:48
【问题描述】:
假设我有很多人:
$a = ['John', 'Amy', 'Bill', 'Jim']
数组可以有超过 4 个元素。
我需要为每个元素与同一数组中的另一个元素生成 2 个配对,而不生成重复配对(在可避免的情况下)或将一个元素与其自身配对:
Array
(
[0] => Array
(
[0] => John
[1] => Amy
)
[1] => Array
(
[0] => Amy
[1] => Bill
)
[2] => Array
(
[0] => Bill
[1] => Jim
)
[3] => Array
(
[0] => John
[1] => Jim
)
)
我尝试过一些草率的技术,例如复制数组、将它们合并,然后将它们分块成对。虽然重复配对和相同的元素配对不断出现,所以我在合并和分块数组之前尝试了shuffle($duplicated_array) 和array_reverse($duplicated_array) 之类的东西,仍然存在重复配对。
在不创建重复配对或将元素与其自身配对的情况下,为数组中的每个元素生成 2 个配对的正确方法是什么?
提前致谢。
这是一个不能完全防止重复的尝试示例:
$duplicate_array = $a;
shuffle($duplicate_array);
$combined = array_merge($duplicate_array, $a);
$combined = array_chunk($combined,2);
【问题讨论】:
-
是你向我们展示你想要达到的结果的数组还是你得到的不是你想要的结果
-
欢迎,为了提高您在 SO 上的体验,请阅读how to ask、On Topic question,然后查看Question Check list、perfect question,如何创建Minimal, Complete and Verifiable Example 和@987654326 @
-
在作业上寻求一点帮助并没有错。欢迎初学者,但我们希望您首先真诚地尝试回答。尽管我们非常愿意帮助您解决您编写的代码的问题,但我们不会为您编写代码。 How do I ask and answer homework questions?
-
@RiggsFolly 我展示的数组是我想要实现的一个可能示例:一个数组,每个元素有两个配对,没有重复配对
标签: php arrays duplicates