只想通过数组
输入来打印模式<?php
$a=array(2,4,1,6);
foreach($a as $a1){
for($row=1;$row<=count($a1);$row++){
for($col=1;$col<=count($a1);$col++){
echo "*";
}
echo "<br>";
}
}
?>
我使用foreach循环逐个传递值,但这不起作用?
答案 0 :(得分:1)
您可以使用str_pad来避免所有过度循环。
$a = array(2,4,1,6);
foreach($a as $a1){
echo str_pad("", $a1, "*") . "<br/>\n";
}
答案 1 :(得分:0)
可用于实现您的预期结果。 (假设您要创建的模式作为输入数组给出)
$a=array(2,4,1,6);
foreach($a as $a1){
for($col=1;$col<=$a1;$col++){
echo "*";
}
echo "<br>";
}
我想打印一些像这样的镜像
*
*
* *
* *
* *
** *
****
答案 2 :(得分:0)
count($a1)
将始终== 1
。
在foreach
循环中$a1
将获取数组成员的值,因此第一个循环上为$a1 == 2
,第二个循环上为4
,依此类推。 $a1
是一个数字,因此使用count($a1)
没有任何意义。
第二个循环(for
循环)可能是打印与$a1
的值相同数量的星号。 值记住,而不是 count ,计数是数组或对象拥有的成员数。因此,您需要使用$row<=count($a1)
而不是row<=$a1
。
第三个循环是不必要的。除非您以三维方式打印。只需在第一个print
循环内移动for
函数并将其删除即可。