Вы, вероятно, не так уж и далеко со своей собственной попыткой.Вам просто нужно сгенерировать 6 случайных уникальных чисел и сравнить их.Самый простой способ сделать это - сгенерировать массив с помощью range()
и выбрать случайные числа с помощью array_rand()
(который на самом деле возвращает индексы, поэтому вам потребуется немного дополнительного кода для получения значений).Тогда вам просто нужно выяснить, находится ли текущее число в выбранном массиве чисел, используя in_array()
Вот пример функции общего случая, которая немного расширяет пример Сондре.Функция в этом примере принимает следующие аргументы: общее количество выбранных случайных чисел, наименьшее число в сетке, наибольшее число в сетке и число в строке в сетке.Функция возвращает сгенерированную исходную таблицу HTML в виде строки.
<?php
function generateHighlightedLotteryTable ($count = 6, $min = 1, $max = 42, $perRow = 7)
{
// Generate the picked numbers (actually we just get their indexes)
$nums = array_rand(range($min, $max), $count);
$output = "<table>\n";
for ($n = $min; $n <= $max; $n++)
{
// get "index" of the number, i.e. $min is the first number and thus 0
$i = $n - $min;
if ($i % $perRow == 0)
{
$output .= "<tr>";
}
// If the current number is picked
if (in_array($i, $nums))
{
$output .= "<td><strong>$n</strong></td>";
}
// If the current number hasn't been chosen
else
{
$output .= "<td>$n</td>";
}
if ($i % $perRow == $perRow - 1)
{
$output .= "</tr>\n";
}
}
// End row, if the numbers don't divide evenly among rows
if (($n - $min) % $perRow != 0)
{
$output .= "</tr>\n";
}
$output .= "</table>";
return $output;
}
echo generateHighlightedLotteryTable();
?>
Я надеюсь, что это то, чего вы пытались достичь.