PHP数组排列组合去重有序化。

3
原来我的数学运算是错误的!请阅读PHP数组组合以获取组合示例。

我已经在网上搜索了3个星期(包括SO),没有找到已经解决或提出这个问题的人。

我需要一个PHP数组的排列,只包含唯一的有序值。

$array = array('Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'Number6');

通常的排列方式如下:

.1 Number1, Number2, Number3, ...; .2 Number1, Number2, Number4, ...; .3 Number2, Number4, Number1, ...;

但我需要它有序唯一。因此第三行将被排序为

.1 Number1, Number2, Number3, ...; .2 Number1, Number2, Number4, ...; .3 Number1, Number2, Number4, ...;

这意味着第3行不是唯一的,不会保存在新数组中。

第二个例子

array('A','B','C') A AB AC ABC ACB B BC BA BCA BAC C CA CB CAB CBA 对我来说是错误的

我需要输出如下

A B C AB BC AC ABC

我已经解决了这个问题。但我的解决方案就像石器时代一样,只是对所有新数组排列进行排序并过滤它们。因为6个数字与所有可能性的排列就像X^10一样,需要100年的计算时间-.-

请帮助我。

顺便说一句:这是我在这里的第一篇文章,请温柔点:D

1个回答

1

1
你的回答帮了我 :D 因为我一直在寻找错误的数学操作。 我需要的是"组合"而不是"排列",我可以从你的链接中读到。所以谢谢。因为:排列('ABCD', 2) AB AC AD BA BC BD CA CB CD DA DB DC //但是组合('ABCD', 2) AB AC AD BC BD CDhttps://www.mathsisfun.com/combinatorics/combinations-permutations-calculator.html - KikiTheOne
我很高兴它能帮到你。 - felipsmartins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接