Как я понимаю, функция array_rand
выберет случайный ключ из массива. Но что, если мне нужно вернуть все ключи рандомизированным?Доза array_rand() может вернуть все рандомизированные ключи
Вот мой код:
$answers=array("$q->answer_1", "$q->answer_2", "$q->answer_right");
$randKey=array_rand($answers,3);
echo $answers[$randKey[0]]."<br/>";
echo $answers[$randKey[1]]."<br/>";
echo $answers[$randKey[2]]."<br/>";
Таким образом, количество ключей 3 и мне нужно, чтобы вернуть три клавиши рандомизированные. Как я могу это сделать?
В моем примере это не рандомизирует что-либо; он просто отображает
"$q->answer_1", "$q->answer_2", "$q->answer_right"
правильного ответа на kingkero и Бен был
$answers=array("$q->answer_1", "$q->answer_2", "$q->answer_right");
$ranKey=shuffle($answers);
echo $answers[0]."<br />";
echo $answers[1]."<br />";
echo $answers[2]."<br />";
Что? Почему бы вам просто ['shuffle()'] (http://php.net/manual/function.shuffle.php) исходный массив? – kero
Обратите внимание, что если вы посмотрите на журнал изменений на странице [справочная страница] (http://php.net/manual/en/function.array-rand.php) для 'array_rand', вы увидите, что« [t ] В результате массив ключей больше не перетасовывается "с версии 5.2.10. Вот почему вы возвращаете ключи в первоначальном порядке. – Ben
спасибо @kingkero и Ben он отлично справился теперь, спасибо за это и +1 за обоих. –