【发布时间】:2017-05-31 08:19:47
【问题描述】:
我有一个看似简单的任务,但我被困住了。我尝试了重组和迭代器,但没有任何想法让我印象深刻。他们说一张图片值一千字,所以我将展示我的“图片”示例数组:
array (size=4)
0 =>
array (size=4)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
1 =>
array (size=3)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
2 =>
array (size=3)
0 => string 'X' (length=1)
1 => string 'Y' (length=1)
2 => string 'Z' (length=1)
3 =>
array (size=5)
0 => string '!' (length=1)
1 => string '"' (length=1)
2 => string '#' (length=1)
3 => string '$' (length=1)
4 => string '%' (length=1)
规则:
- 数组大小和子数组大小是随机的,而且相当大。
- 只能使用任何子数组中的一个值。
- 结果应按从最短到最长的顺序排列。
- 必须是高效的内存,由于生成大量数据,结果应离线存储/比较,如文件或 mysql db。但每次都是。
所需字符串组合的示例:
1
2
3
4
a
b
c
X ...
1a
1b
1c
2a
2b ...
aX!
aX" ...
1aX!
1aX" .......
4cZ%
我尝试了几个迭代器,例如 How to generate in PHP all combinations of items in multiple arrays。
【问题讨论】:
-
那么每一行的长度在1和你数组中的元素个数之间?你想要所有可能的组合,还是只想要几个,比如 100?
-
所有组合,数组大小随机,一个元素最多15000行,一个数组最多50个元素。
-
这里似乎没有对问题的简洁陈述。你能在第一段中总结它吗?
-
显示您的代码。
标签: php arrays iterator iteration nested-loops