У меня есть массив, такой как:
$hex = array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
Я хочу вернуть 6 случайных элементов в виде строки (например, 1a3564):
$random_color = array_rand($hex,6);
Я думал, взорвав $ random_colorсделал бы хитрость:
echo implode($random_color);
Но array_rand () хранит позиции элементов в родительском массиве, а не элементы этого массива, поэтому я получаю что-то вроде:
259111213
вместо 259bcd
.
Я знаю, что это именно то, что я хочу:
echo $hex[$random_color[0]];
echo $hex[$random_color[1]];
echo $hex[$random_color[2]];
echo $hex[$random_color[3]];
echo $hex[$random_color[4]];
echo $hex[$random_color[5]];
Но:
есть ли способ сохранить элементы массива в array_rand()?Почему в первую очередь хранятся позиции элементов вместо элементов?
Каков наилучший способ сделать то, что я хочу достичь?
почему array_rand () НИКОГДА не выбирает букву в качестве первого элемента и почти никогда не в качестве второго / третьего (99% сгенерированных цветов выглядят как 11111a 12345c 123456)?