从数组中生成随机数

时间:2013-10-17 12:20:09

标签: php mysql arrays

在模拟测试中,我将问题的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);

3 个答案:

答案 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";
}