按照给定的输入数组打印模式,输入[2,4,1,6]

时间:2018-06-12 06:40:50

标签: php arrays

只想通过数组

输入来打印模式
<?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循环逐个传递值,但这不起作用?

3 个答案:

答案 0 :(得分:1)

您可以使用str_pad来避免所有过度循环。

$a = array(2,4,1,6);

foreach($a as $a1){

    echo str_pad("", $a1, "*") . "<br/>\n";

}

https://3v4l.org/INTAl

答案 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函数并将其删除即可。