[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как перемешать сразу два массива?
Dimaz
Всем привет! Генерирую 3 случайных числа таким способом:
$x = array(1,2,3,4,5,6);
$y = array_rand($x,3);

Проблема в том, что он генерирует эти числа в порядке возрастания. Т.е. выводит, скажем: 1,2,6.
Все эти числа используются для задания идентификаторов, для получения записей из таблицы бд. Допустим первое случайное число будем сохранять как правильный ответ. Тогда получится, что правильный ответ будет всегда самым первым на странице. Чтобы этого не произошло, нужно перемешать эти числа перед выводом в браузер. Но из БД я получаю два поля. Значения обоих полей мне нужно перемешать случайным образом функцией shuffle(). Но значения обоих массивов должны соответствовать друг другу. Т.е. оба массива должны быть перемешаны одинаково. Как это сделать?
olimpset
Не надо мешать.
$y= rand(1..6);
Dimaz
Я не понял. Что это такое и чем это мне поможет.
olimpset
Это генерирует одно число, если надо 3, то так:
$a = rand(1..6);
$b = rand(1..6);
$c = rand(1..6);
$chisla = $a.$b.$c;

Если работает поставьте плюсик.
Dimaz
Не работает. Тем более мне нужно 3 уникальных случайных числа.
sergeiss
Если тебе нужно перемешать параллельно 2 массива... То сначала сделай у них одинаковые индексы, а затем перемешай порядок индексов. И хоть 100 массивов у тебя будет - ты их сможешь перемешать в одинаковом порядке, синхронно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
walerus
Можно еще создать двумерный массив, типа:
$a = array();
$a[0] = array( 'Вопрос', 'Ответ' );
$a[1] = array( 'Вопрос', 'Ответ' );
...

$a[n] = array( 'Вопрос', 'Ответ' );

потом:
$b = array_rand( $a );

в $b будет рандомно выбранный вопрос ответ, если же нужно все вывести, тогда
shuffle( $a );

используя foreach - вывести все что нужно...

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.