2014-04-01 14 views
11

Sto provando a generare una tabella con php per il ciclo, che elenca i numeri. Qualcosa di simile a questo:Per tabella loop in PHP

1 | 2 | 3 | 4 | 5 
2 | 3 | 4 | 5 | 1 
3 | 4 | 5 | 1 | 2 
4 | 5 | 1 | 2 | 3 
5 | 1 | 2 | 3 | 4 

ho ancora problemi ottenerlo, questo è in realtà abbastanza semplice, ma non sono stato in grado di risolverlo. Finora ho il seguente codice:

<?php 
echo "<table border='1'><br />"; 

for ($row = 0; $row < 5; $row ++) { 
    echo "<tr>"; 

    for ($col = 1; $col <= 4; $col ++) { 
     echo "<td>", ($col + ($row * 4)), "</td>"; 
    } 

    echo "</tr>"; 
} 

echo "</table>"; 
?> 

Tuttavia, questo genera solo i seguenti:

1 | 2 | 3 | 4 
5 | 6 | 7 | 8 
9 | 10 | 11 | 12 
13 | 14 | 15 | 16 
17 | 18 | 19 | 20 

Grazie, tutto l'aiuto sarebbe apprezzato!

+2

Questo dovrebbe g ti do un'idea '$ a = array (1,2,3,4,5); array_unshift ($ a, array_pop ($ a)); ' –

+1

Questo è chiamato" coda "nelle strutture dati. Leggi questo http://www.phpmoot.com/other-sorting-options/ –

+0

Non una coda ... odora l'aritmetica modulare per me. – EthanB

risposta

15
<?php 
echo "<table border='1'><br />"; 

for ($row = 0; $row < 5; $row ++) { 
    echo "<tr>"; 

    for ($col = 0; $col < 5; $col ++) { 
     echo "<td>", (($col + $row) % 5) + 1, "</td>"; 
    } 

    echo "</tr>"; 
} 

echo "</table>"; 
?> 
+0

Questo è fantastico, grazie – afnizarnur

6
echo "<table border='1'><br />"; 
for ($i = 0; $i < 5; $i++) { 
    echo "<tr>"; 
    for ($j = 0; $j < 5; $j++) { 
     echo "<td>", ($j+$i)%5+1, "</td>"; 
    } 
    echo "</tr>"; 
} 
echo "</table>"; 
3

La mia versione:

<?php 
echo "<table border='1'><br />"; 
$i=1; 
for ($row = 0; $row < 5; $row ++) { 
    echo "<tr>"; 
    $cont = 0; 
for ($col = $i; $col <= 5; $col ++) 
    { 
    echo "<td>", ($col), "</td>"; 
    $cont++; 
    } 
if($cont < 5) 
{ 
for($col = 1; $col <= 5 - $cont; $col++) 
{ 
    echo "<td>", ($col), "</td>"; 
} 
} 

echo "</tr>"; 
$i++; 
} 

echo "</table>"; 

CodePad: http://codepad.viper-7.com/JZogNY

2

mia versione

<?php 
echo "<table border='1'><br />"; 

for ($row = 0; $row < 5; $row ++) { 
    $k=$row; 

    for ($col = 0; $col < 5; $col ++) { 
     echo "<td>", (($k++)%5)+1, "</td>"; 
    } 

    echo "</tr>"; 
} 

echo "</table>"; 
?> 
0
<?php 

    echo '<table border="1">'; 
    $i = 0; 
    for($i =1; $i<=5; $i++){ 
     echo '<tr> 
      <td>'.$i.'</td>'; 
      $x = 0; 
      for($x=1; $x<=4; $x++){ 
       $y = $x + $i; 
       $z = ($y>5) ? $y-5 : $y; 
       echo '<td>'.$z.'</td>'; 
      } 
     echo '</tr>'; 
    } 

    echo '</table>'; 
?> 
+1

considera di aggiungere la spiegazione piuttosto che aggiungere il codice. –