我正在尝试创建一个名为draw_stars()的函数,它接受一个数字数组并回显*。
For example:
$x = array(4, 6, 1, 3, 5, 7, 25);
draw_stars(x) should print the following on the screen/browser:
****
******
*
***
*****
*******
*************************
到目前为止,这是我的代码:
$x = array(4, 6, 1, 3, 5, 7, 25);
function draw_stars($items){
foreach ($items as $item) {
for($i=0; $i<=$item; $i++){
echo '* <br>';
}
}
}
$output = draw_stars($x);
echo $output;
有什么想法吗?
答案 0 :(得分:1)
开箱即用
<?php
$x = array(4, 6, 1, 3, 5, 7, 25);
foreach($x as $num) {
echo str_repeat("*", $num).'<br>';
}
这是一个函数
<?php
function draw_stars(array $x, $star='*', $newline='<br>') {
$return = '';
foreach($x as $num) {
$return.=str_repeat($star, $num).$newline;
}
return $return;
}
$x = array(4, 6, 1, 3, 5, 7, 25);
echo draw_stars($x);
echo draw_stars($x,'_'); // with an otherstring example
答案 1 :(得分:0)
似乎你在每个星星之后打印一个换行符,这显然是错误的。此外,您的功能不会返回任何内容。我稍微修改了你的代码---现在应该可以了。
$x = array(4, 6, 1, 3, 5, 7, 25);
function draw_stars($items){
$out = "";
foreach ($items as $item) {
for($i=0; $i<=$item; $i++){
$out .= '*';
}
$out .= '<br>';
}
return $out;
}
$output = draw_stars($x);
echo $output;
答案 2 :(得分:0)
<?php
$x = array(4, 6, 1, 3, 5, 7, 25);
function draw_stars($items){
foreach ($items as $item) {
for($i=0; $i<$item; $i++){
echo '*';
}
echo '<br />';
}
}
draw_stars($x);
?>
在这里,您也可以使用&#39;&lt; =&#39;你有,你总会再打印一个你真正想要的开始,因为$ i从0开始。
而且你现在在每次开始后打印一个休息时间,应该是在启动线之后。