PHP数组排列uniq有序
PHP Array permutation uniq ordered
原来我的数学运算错了!阅读 PHP array combinations 组合示例
我现在在网上搜索了 3 周(包括 SO)我没有找到已经问过或解决过它的人。
我需要 PHP 中只有 uniq ordered 值的数组排列。
<code>$array = array('Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'Number6');
通常排列会像
<code>
.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number2, Number4, Number1, ...;
但我需要 ordered 和 uniq。所以第 3 行将被命令为
<code>
.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number1, Number2, Number4, ...;
这意味着第 3 行不是唯一的,不会保存在新数组中。
第二个例子
<code>array('A','B','C')
A
AB
AC
ABC
ACB
B
BC
BA
BCA
BAC
C
CA
CB
CAB
CBA
对我来说是错误的
我需要这样的输出
<code>
A
B
C
AB
BC
AC
ABC
到目前为止我有点解决了。但是我的解决方案就像 stoneage,只是对所有新的 array_permutations 和 array_filter 进行排序。这就像 100 年的计算时间,因为 6 个数字排列成所有的可能性就像 X^10 -.-
请大家帮帮我。
顺便说一句:这是我第一次 post 在这里,所以要温柔 :D
我强烈建议您看一下名为 itertools 的 python 模块。
它是一个用于高效循环的模块,包含大量涉及排列、组合等的操作。
尽管是用 python 语言编写的模块,但将代码移植到 PHP 语言应该不难。但是,由于其中一些操作可能需要大量内存使用,因此使用 PHP 5.5+ 是个好主意,因为在此版本中包含 generators。
原来我的数学运算错了!阅读 PHP array combinations 组合示例
我现在在网上搜索了 3 周(包括 SO)我没有找到已经问过或解决过它的人。
我需要 PHP 中只有 uniq ordered 值的数组排列。
<code>$array = array('Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'Number6');
通常排列会像
<code>
.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number2, Number4, Number1, ...;
但我需要 ordered 和 uniq。所以第 3 行将被命令为
<code>
.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number1, Number2, Number4, ...;
这意味着第 3 行不是唯一的,不会保存在新数组中。
第二个例子
<code>array('A','B','C')
A
AB
AC
ABC
ACB
B
BC
BA
BCA
BAC
C
CA
CB
CAB
CBA
对我来说是错误的
我需要这样的输出
<code>
A
B
C
AB
BC
AC
ABC
到目前为止我有点解决了。但是我的解决方案就像 stoneage,只是对所有新的 array_permutations 和 array_filter 进行排序。这就像 100 年的计算时间,因为 6 个数字排列成所有的可能性就像 X^10 -.-
请大家帮帮我。
顺便说一句:这是我第一次 post 在这里,所以要温柔 :D
我强烈建议您看一下名为 itertools 的 python 模块。
它是一个用于高效循环的模块,包含大量涉及排列、组合等的操作。
尽管是用 python 语言编写的模块,但将代码移植到 PHP 语言应该不难。但是,由于其中一些操作可能需要大量内存使用,因此使用 PHP 5.5+ 是个好主意,因为在此版本中包含 generators。