我现在正在网上搜索3周(包括SO)我找不到已经问过或解决过的人。
我需要PHP中只有uniq 有序值的数组排列。
$array = array('Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'Number6');
通常排列就像
$array = array('Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'Number6');
但我需要有序和 uniq 。所以第3行将被命令
.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number2, Number4, Number1, ...;
这意味着第3行不是uniq,不会保存在新数组中。
第二个例子
.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number2, Number4, Number1, ...;
对我来说是错误的
我需要像这样的输出
.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number1, Number2, Number4, ...;
到目前为止我有点解决了。但我的解决方案就像 stoneage ,只需对所有新的array_permutations和array_filter进行排序。这就像100年计算时间导致6个数字排列所有可能性就像X ^ 10 -.-
请帮帮我们。
顺便说一句:这是我在这里的第一篇文章,所以要温柔:D答案 0 :(得分:1)
我强烈建议您查看名为itertools的python模块。
它是一个有效循环的模块,可以完成涉及排列,组合等的大量操作。
尽管是一个用python语言编写的模块,但将代码移植到PHP语言并不困难。但是,由于其中一些操作可能需要大量内存使用,因此最好使用 PHP 5.5 + ,因为在此版本中包含了generators。