Как я могу расположить числа в этом шаблоне из стороны в сторону? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь сделать этот шаблон в PHP:

1  2  3  4
8  7  6  5
9 10 11 12

Я пробовал это, но безуспешно:

$num = 0;
for ($i=0; $i<=2; $i++) {  
    for ($j=1; $j<=5; $j++) {  
        $num = $j - $i+$num;
        echo $num.""; 
        $num--;
    }  
    echo "</br>";  
}

Может кто-нибудь помочь мне, пожалуйста?

Заранее спасибо ...

Ответы [ 12 ]

0 голосов
/ 12 февраля 2019
$number = 12;
$elements_per_row = 4;
$left_to_right = true;
$processed_number_count = 0;
$result_array = [];
$temp = [];
for ($i=1; $i<=$number; $i++) {
    $temp[] = $i;
    $processed_number_count++;
    if ($processed_number_count === $elements_per_row) {
        $processed_number_count = 0;
        if ($left_to_right) {
            $result_array[] = $temp;
        } else {
            $result_array[] = array_reverse($temp);
        }
        $left_to_right = !$left_to_right;
        $temp = [];
    }
}

var_dump($result_array);

Затем просто передайте $ result_array для печати желаемого шаблона

Это можно использовать по-разному для многих других шаблонов, которые используют то же правило, изменяя $ number и $ elements_per_row

0 голосов
/ 12 февраля 2019

Вот самый простой и быстрый код, который я смог сделать, используя два цикла.Это проще с тремя циклами, и есть несколько способов добиться этого, но, по моему мнению, это самый простой способ.

<?php

$num = 1;
$change = true;
$cols = 5;
$rows = 5;

for ($i = 0; $i < $rows; $i++) {
    if (!$change) {
        $num += ($cols - 1);
    }

    for ($j = 0; $j < $cols; $j++) {
        echo $num . " ";
        if (!$change) {
            $num--;
        } else {
            $num++;
        }
    }

    if (!$change) {
        $num += ($cols + 1);
    }

    $change = !$change;
    echo "<br>";
}

ПРИМЕЧАНИЕ: Вы должны определить количество столбцов в $cols переменная.Это будет работать в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...