这是什么尝试
***
**
*
我这样做:
<?php
$val = '*';
for($i=1; $i<=3; $i++) {
if($i == 1) {
echo '***<br>';
} elseif($i == 2) {
echo '**<br>';
} elseif($i == 3) {
echo '*';
}
}
?>
现在我确定这是一种驴子方式......我想我需要在for循环中使用while循环但是不知道怎么做..
答案 0 :(得分:2)
<?php
for($i=3;$i>0;$i--)
{
echo str_pad("*", $i,"*");
echo "<br>";
}
?>
答案 1 :(得分:2)
你去了:
function stringTree($val = '*', $k = 3) {
for($i = $k; $i > 0; $i--) {
echo str_repeat($val, $i).'<br>';
}
}
}
然后根据您的具体示例,您可以致电:
stringTree('*', 3);
将输出:
***
**
*
或继续前进,使其更大;例如:
stringTree('*', 6);
将输出:
******
*****
****
***
**
*
或轻易改变角色:
stringTree('.', 4);
将输出:
....
...
..
.
答案 2 :(得分:1)
使用str_repeat
:
str_repeat('*', 4-$i)
整个代码:
<?php
$val = '*';
for($i=1; $i<=3; $i++) {
echo str_repeat($val, 4-$i) . '<br/>';
}
?>
答案 3 :(得分:1)
for ($counter = 1; $counter <= 10; $counter++)
{
// display star, counter number of times
for ($star_counter = 1; $star_counter <= $counter; $star_counter++)
{
echo "*";
}
echo "<br/>";
}
答案 4 :(得分:1)
<?php
$val = '***';
while($val != '')
echo $val . '<br/>';
$val = substr($val, 0, -1);
}
?>
这可以让你从任意数量的星星开始,不需要内循环。
答案 5 :(得分:1)
我将解释一种可以理解的方式,
$val = '*'; // Your star
$count= 3; // Number of lines
for($i=0; $i<$count; $i++) {
$num= $count-$i; //number of lines to come
for($j=0; $j<$num; $j++) {
echo "*";
}
echo "<br />";
}
Out put
***
**
*
答案 6 :(得分:1)
强制性的1-liner,有很多方法可以做到这一点。
for($i=3; $i; print str_repeat("*", $i--) . '<br />');
为了好玩:https://codegolf.stackexchange.com/questions/4114/print-a-christmas-tree/6783#6783