Whi*_*ise 1 php arrays multidimensional-array
说我有以下数组:
$var = array(
"green" => array("one", "two"),
"red" => array("three", "four"),
"yellow" => array("five", "six")
);
Run Code Online (Sandbox Code Playgroud)
我需要编写什么代码才能生成任意数字的随机输出?
我试过以下,这将给我"一","三"或"五".
$section = array_rand($var);
echo $var[$section][0];
Run Code Online (Sandbox Code Playgroud)
但是我似乎无法将密钥随机化,因此它将随机选择一种颜色,然后随机选择该颜色内的数字.我显然有一个昏暗的时刻.任何人都可以开导我吗?谢谢.
array_rand()将随机化完整的数组.这意味着它会
所以我更喜欢
function getrandomelement($array) {
$pos=rand(0,sizeof($array)-1);
$res=$array[$pos];
if (is_array($res)) return getrandomelement($res);
else return $res;
}
Run Code Online (Sandbox Code Playgroud)
而且当然
echo getrandomelement($var);
Run Code Online (Sandbox Code Playgroud)
编辑
如果不清楚,上述功能适用于任何尺寸,即使尺寸不同(非方形/立方体).
The short way to get random element 在这种情况下:
$var = array(
"green" => array("one", "two"),
"red" => array("three", "four"),
"yellow" => array("five", "six")
);
$section = array_rand($var); //here yoy get random first of array(green or red or yellow)
echo $var[$section][array_rand($var[$section])]; //here you get random element of this array
Run Code Online (Sandbox Code Playgroud)