【发布时间】:2014-09-20 15:53:37
【问题描述】:
我有以下代码:
for($a=1; $a<strlen($string); $a++){
for($b=1; $a+$b<strlen($string); $b++){
for($c=1; $a+$b+$c<strlen($string); $c++){
for($d=1; $a+$b+$c+$d<strlen($string); $d++){
$tempString = substr_replace($string, ".", $a, 0);
$tempString = substr_replace($tempString, ".", $a+$b+1, 0);
$tempString = substr_replace($tempString, ".", $a+$b+$c+2, 0);
$tempString = substr_replace($tempString, ".", $a+$b+$c+$d+3, 0);
echo $tempString."</br>";
}
}
}
}
它的作用是用几个点组成一个字符串的所有可能组合。
例子:
t.est123
测试.st123
test.t123
...
test12.3
然后,我再添加一个点:
t.e.st123
t.es.t123
...
test1.2.3
按照我现在的方式,我需要创建大量 for 循环,每个循环用于确定数量的点。我不知道如何将该示例转换为函数或其他更简单的方法。
【问题讨论】:
-
最终结果是什么?所有字母之间都有点?
-
@Crackertastic,你是对的,看上面的例子。我在上面展示的那些循环使用 4 个点组成所有可能的组合。
-
如果我的理解是正确的,您需要做的就是使用一个函数来移动句点通过字符串(计数),同时确保它在字符串中的另一个句点之前停止。第二个函数负责根据字符串大小进行循环。我已经发布了一个答案供您考虑,说明我的意思。