Как зациклить число (вход: 5) в php

1

Как петля с input = 5 образца input = 5

и выход:

1 2 3 4 5
0 2 3 4 5
0 0 3 4 5
0 0 0 4 5
0 0 0 0 5

PHP:

<?php 
$i=5; 
for($a=1; $a<=$i; $a++){ 
   echo $a." "; 
} 
echo "\n"; 
for($a=0; $a<=$i; $a++){ 
  if($a==1){ 
   continue;
  } 
  print "$a "; 
} 
echo "\n"; $ex = array(1,2); 
for($a=1; $a<=$i; $a++){ 
  if(in_array($a, $ex)){ 
    continue;
  } 
  print "$a "; 
} 
?>

Как решить эту проблему?

  • 0
    Что именно вы хотите сделать? что ты уже испробовал?
  • 0
    <? php $ i = 5; for ($ a = 1; $ a <= $ i; $ a ++) {echo $ a. ""; } echo "\ n"; for ($ a = 0; $ a <= $ i; $ a ++) {if ($ a == 1) {continue;} print "$ a"; } echo "\ n"; $ ex = array (1,2); for ($ a = 1; $ a <= $ i; $ a ++) {if (in_array ($ a, $ ex)) {continue;} print "$ a"; }?>
Показать ещё 5 комментариев
Теги:

2 ответа

1
Лучший ответ

Подумайте просто

<?php
$input = 5;
for($i = 1; $i <= $input; $i++ ) {
    for($j = 1; $j <= $input; $j++) {
        if( $i > $j) {
            echo "0 ";
        } else {
            echo $j . " ";
         }
    }
    echo "<br>";
}
?>
  • 0
    Спасибо Тамил Сельван
  • 1
    Хорошее логичное решение для задачи. Но в будущем другому человеку будет трудно понять, что делает этот фрагмент кода.
2

Используя встроенные функции, его легче читать и понимать:

$input = 5;
$nums = range(1, $input);
for ($zeros_count = 0; $zeros_count < $input; $zeros_count++) {
    echo str_repeat('0 ', $zeros_count);
    echo implode(' ', array_slice($nums, $zeros_count)) . PHP_EOL;
}
  • 0
    Хорошее решение ...
  • 0
    Спасибо. Но ваш более производительный. Если бы речь шла об обработке реальных данных, это стало бы важным.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню