我需要打印这个:
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>";
}
错了哈哈,你能帮帮我吗?
我需要打印这个:
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>";
}
错了哈哈,你能帮帮我吗?
您可能可以稍微清理一下这段代码,但据我所知,最好的方法如下:
循环遍历字符串中的字符,在适用的情况下添加前面的字母,将它们添加到数组中。然后,您可以删除$word
using的重复字符串,该字符串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;
$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>";
}
for
是单词的 2*length 减一。所以代码变成了:
$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--;
}
一些提示: