【发布时间】:2012-02-04 21:14:22
【问题描述】:
我想在 PHP 中组合字符串。我的脚本创建了所有可能的组合,如下所示。
$part1 = array('','d','n','s','g');
$part2 = array('a','e','o','oo');
$part3 = array('m','n','s','d','l','t','g','j','p');
$part4 = array('g','p','l','');
$part5 = array('g','p','l');
$part6 = array('a','e','o');
$part7 = array('d','l','r','');
$names = array();
foreach ($part1 as $letter1) {
foreach ($part2 as $letter2) {
foreach ($part3 as $letter3) {
foreach ($part4 as $letter4) {
foreach ($part5 as $letter5) {
foreach ($part6 as $letter6) {
foreach ($part7 as $letter7) {
$names[] = $letter1 . $letter2 . $letter3 . $letter4 . $letter5 . $letter6 . $letter7;
}
}
}
}
}
}
}
但我对我的解决方案不满意。我是快速而肮脏的代码。是否有一个解决方案可以使用灵活数量的部分数组,所以我可以通过例如扩展脚本$part8 容易吗? (不改变循环结构)
【问题讨论】:
-
stackoverflow.com/questions/2516599/… 的可能副本。似乎您正在寻找一组数组的笛卡尔积。
-
可能是一个愚蠢的问题,但该代码是做什么用的?我可以看到它的作用,但是对于那些字母,我看不出你会用它做什么。
-
@Steve:它将成为名称生成器。
标签: php coding-style foreach code-cleanup