У меня есть многомерный массив, состоящий первоначально из почтовых переменных, который выглядит примерно так:Как получить случайный элемент из многомерного массива в PHP
$easys = array(
array($easy1min,$easy1max,$easy1enc),
array($easy2min,$easy2max,$easy2enc),
array($easy3min,$easy3max,$easy3enc),
array($easy4min,$easy4max,$easy4enc),
array($easy5min,$easy5max,$easy5enc),
array($easy6min,$easy6max,$easy6enc),
array($easy7min,$easy7max,$easy7enc),
array($easy8min,$easy8max,$easy8enc),
array($easy9min,$easy9max,$easy9enc),
array($easy10min,$easy10max,$easy10enc)
);
Я пытающегося вернуть одного рандомизированного результат от этого.
Моя функция пытается перетасовать выглядит следующим образом:
$shuffle($easy_encounters);
$num = rand($easy_encounters[0][0],$easy_encounters[0][1]);
return "(".$num.") ".$easy_encounters[0][2];
дает
"shuffle expect parameter 1 to be array.."
Я также попытался iterator_to_array:
$easy_encounters = iterator_to_array($easy_encounters);
который возвращает ошибку
"Catchable fatal error: Argument 1 passed to iterator_to_array() must implement interface Traversable..."
затем пара попытки использовать различный синтаксис для array_rand, таких как:
$easy_encounters = array_rand($easy_encounters);
$num = rand($easy_encounters [0][0],$easy_encounters [0][1]);
return "(".$num.") ".$easy_encounters [0][2];
и
$random_obj = $easy_encounters[array_rand($easy_encounters)];
$num = rand($random_obj[0][0],$random_obj[0][1]);
return "(".$num.") ".$random_obj[0][2];
Я чувствую, что я удар все вокруг этого. Я признаю, что, возможно, не полностью понял использование iterator_to_array после того, как получил эту ошибку Traversable.
Любая помощь приветствуется. Я поплелся вокруг SO, где я получил примеры, которые я использовал таким образом.
Вы назвали свой массив $ easy, но используете его везде, как $ easy_encounters – Orangepill
Возможный дубликат [PHP Parse/Syntax Errors; и как их решить?] (http://stackoverflow.com/questions/18050071/php-parse-syntax-errors-and-how-to-solve-them) –
@Orangepill Извините, я забыл показать, что я назначил массив для сеанса, затем снова выполнить сеанс ... 'code' $ _SESSION [" enc_easy "] = $ easys; $ easy_encounters = $ _SESSION ["enc_easy"]; – Nallware