Подсчет чисел и сортировка их

У меня вопрос. Я создал небольшой скрипт, который генерирует 37 случайных чисел от 0 до 36, но я хочу немного его расширить.

Вот что у меня есть:

<!DOCTYPE html>
<html>
<body>

<?php
for ($x = 1; $x <= 37; $x++) {
echo(mt_rand(0,36) . "<br>");
}
?>

</body>
</html>

Я хочу показать горизонтальную строку от 0 до 36 и ниже, которую я хочу показать, сколько раз число показывает из предыдущего кода генератора случайных чисел.

Может ли кто-нибудь помочь мне здесь?

1

Решение

Попробуй это:

<!DOCTYPE html>
<html>
<body>
<?php

$numberOfSpins = 10000;
$numberArray = array();

// Start table
echo '<table>
<tr>';

// print out the table headers
for ($x = 0; $x < 37; $x++) echo '<th style="font-weight:bold; color:#09f;">'.$x.'</th>';

// Fill $numberArray with random numbers
for($i=0; $i < $numberOfSpins; $i++) array_push($numberArray, mt_rand(0,36));

echo '</tr>
<tr>';

// Count value frequency using PHP function array_count_value()
$resultArray = array_count_values($numberArray);

// Start from 0 since you are generating numbers from 0 to 36
for($i=0; $i < 37; $i++)
{
// array_count_values() returns an associative array (the key of
// each array item is the value it was counting and the value is the
// occurrence count; [key]->value).
if (isset($resultArray[$i])) echo '<td>'.$resultArray[$i].'</td>';
else echo '<td>0</td>';
}

echo '</tr>
</table>';
?>
</body>
</html>
0

Другие решения

Вы можете создать массив и сохранить результат на нем.

Код

Ты можешь использовать array_count_values

$random_numbers = array();
echo 'Random Numbers: ';
for ($x = 1; $x <= 37; $x++) {
$random_numbers[] = mt_rand(0,36);
}
print_r(array_count_values($random_numbers));

ВЫХОД

Array
(
[21] => 1
[22] => 1
[15] => 1
[6] => 2
[13] => 2
[24] => 2
[35] => 3
[0] => 1
[3] => 2
[32] => 1
[19] => 2
[9] => 2
[28] => 2
[29] => 1
[33] => 1
[11] => 1
[2] => 3
[25] => 1
[10] => 2
[4] => 1
[30] => 1
[20] => 1
[27] => 1
[26] => 1
[12] => 1
)
0

Вы можете использовать переменную для хранения значений, а затем использовать array_keys отобразить номер столбца и arrays_values распечатать значения. Последнее не является обязательным.

<?php

$numbers = [];

for($x = 1; $x <= 10; $x++) {
$numbers[$x] = mt_rand(0,36);
}

echo implode("\t | \t", array_keys($numbers));
echo PHP_EOL;
echo implode("\t | \t", $numbers);
-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector