user2736878
user2736878

Reputation: 31

How to show these numbers in tabular format?

This code is giving the following output, I want to show these numbers in table is there any way to do this? and why it is not showing the numbers in proper format like why 53 is not exactly below 40 and others also not showing in proper order?

<?php

$arr = array();

for ($i=1;$i<82;$i++) {
    $arr[] = $i;
}

shuffle($arr);
$lines = array_chunk($arr, 9);
foreach ($lines as $key => $line) {
   $lines[$key] = implode("&nbsp&nbsp&nbsp", $line);
}
echo implode("<br>", $lines);
?>

Output

73   40   79   1   43   7   76   44   18
6   53   45   55   71   20   80   66   74
69   51   52   65   22   63   59   50   54
29   33   23   49   77   24   61   60   58
8   81   30   15   26   32   16   47   31
17   39   4   35   27   11   5   25   68
2   34   72   42   75   46   48   3   38
14   28   37   62   10   78   12   56   13
41   21   19   36   9   64   67   57   70

Upvotes: 0

Views: 108

Answers (3)

Bushra Shahid
Bushra Shahid

Reputation: 781

try this

<?php

$arr = array();

for ($i = 1; $i < 82; $i++) {
    $arr[] = $i;
}

shuffle($arr);
$lines = array_chunk($arr, 9);

echo "<table>";

foreach ($lines as $key => $line) {
    echo "<tr>";
    for ($i = 0; $i < sizeof($line); $i++) {
        echo "<td align='right'>" . $line[$i] . "</td>";
    }
    echo "</tr>";
}

echo "</table>";
?>

Your Out put

enter image description here

Upvotes: 1

Hanky Panky
Hanky Panky

Reputation: 46900

If you don't want to use tables or CSS. You can use a <pre> tag then use some tabs and newlines

<pre>
<?php
$arr = array();
for ($i=1;$i<82;$i++) {
    $arr[] = $i;
}

shuffle($arr);
$lines = array_chunk($arr, 9);
foreach ($lines as $key => $line) {
   $lines[$key] = implode("\t", $line);
}
echo implode("\n", $lines);
?>

Fiddle

Note: I didn't really care about your logic for creating those lines while answering this question since its only about formatting. You can trim down some code too.

Output

22  16  66  79  8   41  47  2   80
29  38  76  18  40  46  73  34  45
31  3   62  68  14  33  20  72  67
78  44  42  30  51  77  36  25  48
64  70  21  15  19  9   56  50  65
37  27  4   1   35  74  75  52  32
81  23  10  28  26  59  7   54  11
6   63  5   39  53  12  24  60  49
71  55  17  13  61  69  43  57  58

Now with slightly better code

<pre>
<?php
$numbers=range(1,81);
shuffle($numbers);
$c=0;
foreach($numbers as $n)
{
    if($c%9==0)echo "\n";
    echo $n."\t";
    $c++;
}
?>

Upvotes: 4

Imran Qamer
Imran Qamer

Reputation: 2265

modify your code like this:

<?php

$arr = array();

for ($i=1;$i<82;$i++) {
    $arr[] = $i;
}

shuffle($arr);
$lines = array_chunk($arr, 9);
echo '<table>';
foreach ($lines as $key => $line) {
   echo '<tr><td align="right">';
   echo $lines[$key] = implode('</td><td align="right">', $line);
   echo '</td></tr>';
}
echo '</table>';
?>

Output

57  41  48  17  73  76  7   78  12
69  61  39  80  24  58  45  11  70
47  65  33  21  38  4   19  13  46
59  52  63  14  25  3   30  28  77
50  40  68  6   2   29  20  66  26
72  74  34  75  15  36  71  10  60
55  53  1   16  23  42  51  35  62
44  32  43  64  18  8   54  49  5
81  27  31  67  37  22  79  56  9

Upvotes: 1

Related Questions