我有一个多维数组,最初由post变量组成,看起来像这样:
$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看起来像这样:
$shuffle($easy_encounters);
$num = rand($easy_encounters[0][0],$easy_encounters[0][1]);
return "(".$num.") ".$easy_encounters[0][2];
给出
" shuffle期望参数1为数组.."
我也尝试了iterator_to_array:
$easy_encounters = iterator_to_array($easy_encounters);
返回错误
"可捕获的致命错误:传递给iterator_to_array()的参数1必须实现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];
我觉得我一直在打这个。我承认在得到Traversable错误后可能还没有完全理解iterator_to_array的使用。
感谢任何帮助。我已经在SO周围跋涉,这就是我已经使用过的例子。
答案 0 :(得分:1)
首先我不认为你可以使用$shuffle(argument)
它是一个函数而不是一个变量,删除$
,然后在代码的第一部分使用$easys
,然后{ {1}}改变它。在两个文件中使用相同的变量名称。
答案 1 :(得分:1)
$randomArray = array_rand($easy_encounters);
echo $easy_encounters[$randomArray][array_rand($easy_encounters[$randomArray])];
首先得到一个随机数组。然后从数组中获取一个随机值。
$randomArray
是$easy_encounters
内的随机数组。所以底线是echo $easy_encounters[$randomArray][$randomElement inside $randomArray]
。