Допустимые шестнадцатеричные цвета могут содержать от 0 до 9 и от A до F, поэтому, если мы создадим строку с этими символами, а затем перемешаем ее, мы можем получить первые 6 символов, чтобы создать случайный шестнадцатеричный код цвета.Ниже приведен пример!
код
echo '#' . substr(str_shuffle('ABCDEF0123456789'), 0, 6);
Я проверил это в цикле while и сгенерировал 10000 уникальных цветов.
кодРаньше я генерировал 10000 уникальных цветов:
$colors = array();
while (true) {
$color = substr(str_shuffle('ABCDEF0123456789'), 0, 6);
$colors[$color] = '#' . $color;
if ( count($colors) == 10000 ) {
echo implode(PHP_EOL, $colors);
break;
}
}
, что дало мне эти случайные цвета в результате.
из них указывал, что мойВ первом примере не удалось сгенерировать шестнадцатеричные числа, такие как '4488CC', поэтому я создал функцию, которая могла бы генерировать шестнадцатеричные числа, подобные этой.
код
function randomHex() {
$chars = 'ABCDEF0123456789';
$color = '#';
for ( $i = 0; $i < 6; $i++ ) {
$color .= $chars[rand(0, strlen($chars) - 1)];
}
return $color;
}
echo randomHex();
Второй пример лучше использовать, потому что он может вернуть намного больше результатов, чем первый, но если вы не собираетесь генерировать много цветовых кодов, тогда первый пример будет работать просто отлично.