在模拟测试中,我将问题的id存储在一个数组中,我希望在测试开始时它会从这个数组生成radomly id。当id小于10然后它产生正确的数字但是当它存储大于10时,如20,21,22 ..然后它也产生数字形式1-10。我希望它从存储在此数组中的数字生成随机数。 thnax ..
$ids= array('20','21','22','23','24','25','26','27','28','29','30','31','32',);
$getIds=mysql_query("select * from mock_test_question where status='1' and question_level='FINAL' ") or die(mysql_error());
while($data=mysql_fetch_array($getIds))
{
array_push($ids, $data['id']);
}
print_r($ids);
echo "</br>";
$rand_keys = array_rand($ids,5);
$_SESSION['quesid']=$rand_keys;
print_r($rand_keys);
答案 0 :(得分:2)
array_rand返回KEYS(数组位置)而不是实际值。获取值:
echo $ids[$rand_keys];
答案 1 :(得分:0)
$count = count($ids) - 1; # note that its -1 because array keys start from 0
echo $ids[rand(0,$count)];
这是从数组中获取随机元素的快速方法
P.S&GT; 以下是生成数字和用法的完整代码。
$ids = array();
for($i=20;$i<=32;$i++){ $ids[]=$i; }
$count = count($ids) - 1;
echo $ids[rand(0,$count)];
echo $ids[rand(0,$count)];
echo $ids[rand(0,$count)];
答案 2 :(得分:0)
这应该给你一个随机数
$randomValues = array('20','21','22','23','24','25','26','27','28','29','30','31','32');
$randomValuesIndex = array_rand($randomValues, 1);
$randomValue = $randomValues[$randomValuesIndex];
echo $randomValue."\n";
生成随机数的示例循环
$randomValues = array('20','21','22','23','24','25','26','27','28','29','30','31','32');
for ($i = 1; $i < 30; $i++)
{
$randomValuesIndex = array_rand($randomValues, 1);
$randomValue = $randomValues[$randomValuesIndex];
echo $randomValue."\n";
}