我需要打印这个:
l
li
lik
like
lik
li
l
但使用两个增量的for循环!好吧基本上我是这样做的!
$word = 'like';
for($i=0,$j=7;$i<7;$i++,$j--){
print substr($word, 0,$i)."<br>";
}
这是错的哈哈,你能帮助我吗?
答案 0 :(得分:1)
您可以稍微清理一下这段代码,但据我所知,最好的方法如下:
循环遍历字符串中的字符,在适用的位置添加前面的字母,将它们添加到数组中。然后,您可以使用$word
删除array_pop
的重复字符串,该字符串将从阵列中删除最后一个对象。从那里,您需要使用array_reverse()
反向生成数组的副本,然后implode()
使数组转换为字符串。使用<br />
以便数组中的每个字符串都将打印在一个新行上。
我并不特别关心这是否是你的作业,正如@Madara Uchiha所建议的那样,但它只是帮助我进一步了解PHP。
$word = "like";
$order = array();
for ($i = 0; $i < strlen($word); $i++) {
if ($i == 0) {
$order[] = $word[$i];
}
else {
$str = "";
for ($j = 0; $j <= $i; $j++) {
$str .= $word[$j];
}
$order[] = $str;
}
}
$backwards = array_reverse($order);
array_pop($order);
$string = implode("<br />", array_merge($order, $backwards));
echo $string;
答案 1 :(得分:0)
$word = 'like';
for($i = 0, $x = $cnt = strlen($word); $i <= $cnt*2; $i++){
if($i <= $cnt)
print substr($word, 0,$i)."<br>";
else
print substr($word, 0, --$x)."<br>";
}
答案 2 :(得分:0)
for
循环应运行的次数,是一个小于2 *长度的单词。所以代码变成:
$word = 'like';
$length = strlen($word);
for($i=1, $j=1; $i < ($length*2) ; $i++ )
{
print substr($word, 0, $j)."<br>";
if($i < $length)
$j++;
else
$j--;
}
一些提示: