Housie Tickets Generator in PHP

This PHP script generates housie tickets using Emojis instead of numbers. Each ticket has 3 rows with 9 columns of which 4 are blanks and the rest have unique but random emoji emoticons.

The emojis are rendered using 160×160 images extracted from the Apple Emoji font and would therefore render on any browser and device.

<? 

/* Written by Amit Agarwal */

function createTicket() {

    // There are so many Emoji emoticons
    $numbers = range(1,846);
    shuffle ( $numbers );

    // Each ticket has 3 rows and each row has 4 blank spaces
    $row = [ ["", "", "", ""], ["", "", "", ""], ["", "", "", ""] ];

    // Each row has 5 numbers (or emojis)
    for ($i=0; $i<sizeof($row); $i++) {
        for ($j=0; $j<5; $j++) {
            array_push($row[$i],$numbers[$i*5+$j]);
        }
        // Let's shuffle to maintain randomness
        shuffle($row[$i]);
    }

    $table = "";

    // The emoji images are hosted in a sub-folder
    for ($i=0; $i<sizeof($row); $i++) {
        $table .= "<tr>";
        for ($j=0; $j<9; $j++) {
            $img = $row[$i][$j] == "" ? "white.gif" : $row[$i][$j] . ".png";
            $table .= "<td width=160 height=160><img src='emoji/$img' width=160 height=160/></td>";
        }
        $table .= "</tr>";
    }

    $table = "<table cellspacing=0 cellpadding=10 border=2>$table</table>";

    return $table;
}

$html =  "";

// Generate 2x5 tickets per sheet
for ($i=0; $i<5; $i++) {
    $html .= "<tr><td>" . createTicket() . "</td><td>" . createTicket() . "</td></tr>"; 
}

echo "<table cellspacing=0 cellpadding=40 border=0>$html</table>";
?>