PHP / HTML - Настройка формата печати количества алмазов по строке / с и по столбцу / с - PullRequest
0 голосов
/ 08 января 2019

Я сейчас исправляю формат вывода, он должен быть таким:

enter image description here

Количество звонков будет определяться входными данными строка и столбец . Я использовал массив для хранения каждой строки выходных данных и циклов, чтобы напечатать массив, содержащий выходные данные (Diamond) и повторить его печать по строкам и столбцам.

Вот мой текущий код (фрагмент):

    $arr[1] = "   **   ";
    $arr[2] = " *    * ";
    $arr[3] = "*      *";
    $arr[4] = "*      *";
    $arr[5] = " *    * ";
    $arr[6] = "   **   ";

    for($Row_Itr = 1; $Row_Itr <= 6; $Row_Itr++){
       echo "<br>";
        for($repeat_column = 1; $repeat_column <= 2; $repeat_column++){
            for($repeat_row = 1; $repeat_row <= 1; $repeat_row++){
                echo $arr[$Row_Itr];

            }
        }
    }

А вот мой текущий вывод:

Строка: 2, столбец: 2

enter image description here

В чем может быть проблема с моим исходным кодом? и как это исправить в для того, чтобы достичь своей цели на выходе?

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Вы должны сделать так, чтобы ваш массив начинался с индекса 0, а затем зацикливался на количестве строк, затем на количестве строк в каждом ромбе, а затем на количестве столбцов. После самого внутреннего цикла столбца вы выводите разрыв строки:

$arr[0] = "&nbsp;&nbsp;&nbsp;**&nbsp;&nbsp;&nbsp;";
$arr[1] = "&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;";
$arr[2] = "*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*";
$arr[3] = "*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*";
$arr[4] = "&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;";
$arr[5] = "&nbsp;&nbsp;&nbsp;**&nbsp;&nbsp;&nbsp;";

$rows = 2;
$cols = 2;
$lines = count($arr);

for($r=0; $r<$rows; ++$r) {
  for($l=0; $l<$lines; ++$l) {
    for($c=0; $c<$cols; ++$c) {
      echo $arr[$l];
    }
    echo '<br>';
  }
}
0 голосов
/ 08 января 2019
function draw_diamonds($rows, $cols)
{
    $d = [
        '   **   ',
        ' *    * ',
        '*      *',
        '*      *',
        ' *    * ',
        '   **   ',
    ];

    for($i=0; $i<$rows; $i++)
        for($j=0; $j<6; $j++)
            echo str_repeat($d[$j], $cols), "\n";
}

draw_diamonds(1,2);

Выход:

   **      **   
 *    *  *    * 
*      **      *
*      **      *
 *    *  *    * 
   **      **   
0 голосов
/ 08 января 2019

Попробуйте установить цикл строки в качестве первого цикла

<?php
    $arr[1] = "&nbsp;&nbsp;&nbsp;**&nbsp;&nbsp;&nbsp;";
    $arr[2] = "&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;";
    $arr[3] = "*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*";
    $arr[4] = "*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*";
    $arr[5] = "&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;";
    $arr[6] = "&nbsp;&nbsp;&nbsp;**&nbsp;&nbsp;&nbsp;";
    $rowcount = 3;$columncount = 2;
    for($repeat_row = 1; $repeat_row <= $rowcount; $repeat_row++){
        for($Row_Itr = 1; $Row_Itr <= 6; $Row_Itr++){
           echo "<br>";
            for($repeat_column = 1; $repeat_column <= $columncount; $repeat_column++){
                    echo $arr[$Row_Itr];
            }
        }
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...