如何把利用array_rand()函数随机取得的值放入一个新的数组中呢?因为直接用$a[$b[1]]...等会出现标题中的错误!
<?php
$a=array();
mysql_connect("localhost","root","123456");
mysql_select_db("test");$rs=mysql_query("select id from aaa where name='a'");
while($row=mysql_fetch_array($rs))
{
$a[]=$row[0];
}
print_r($a);
echo " <br>";
$b=array_rand($a,2);//在数组$a中随机取得两个值并赋给数组$b
echo $a[$b[0]];//这种方式可以输出获得的值,但在sql语句中就会出现错误....
echo " <br>";
echo $a[$b[1]];
for($i=0;$i<2;$i++){
$query=mysql_query("select * from aaa where id='$a[$b[$i]]'");//sql语句中不能$a[$b[$i]]这么用么?该如何修改
$row=mysql_fetch_array($query);
}
print_r($row);mysql_close();
?>
php新手,求助!SOS~~~~~~

解决方案 »

  1.   

    $b=array_rand($a,2);//在数组$a中随机取得两个值并赋给数组$b ===》$b[]=array_rand($a,2);//在数组$a中随机取得两个值并赋给数组$b
      

  2.   

    用你的方法试了,print_r($b)后,输出的结果是Array ( [0] => Array ( [0] => 1 [1] => 2 ) ) 
    我希望的结果是输出结果是Array ( [0] => 1 [1] => 2 )
      

  3.   

    数组$a中有4个值,分别是1、2、3、4 用array_rand($a,2)应该能随机取得其中的两个值吧?
    用$b=array_rand($a,2);print_r($b);打印出来的结果会出现Array ( [0] => 2 [1] => 0 ) 这种情况,[1] => 0无疑是错误的....怎么回事呢 ?
      

  4.   


    input = array("1", "2", "3", "4");
    $rand_keys = array_rand($input, 2);
    print $input[$rand_keys[0]] . "\n";
    print $input[$rand_keys[1]] . "\n";测试没出现你那为0的问题,你是不是$a中有0呢,print_r($a);看看
      

  5.   

    $input[$rand_keys[0]]这种输出是没错,但好像没法放进sql语句执行
    $query=mysql_query("select * from aaa where id='$input[$rand_keys[0]]'");//sql语句中不能$input[$rand_keys[0]]这么用么?会出现syntax error, unexpected '[', expecting '] in......这样的错误提示!
      

  6.   


    $id=$input[$rand_keys[0]];
    $query=mysql_query("select * from aaa where id='$id'");
      

  7.   

    好像$id只能取到第一个的值,其他的都取不到?<?php
    $input=array("1", "2", "3", "4");
    $rand_keys = array_rand($input, 2);
    print $input[$rand_keys[0]] . "\n";
    print $input[$rand_keys[1]] . "\n";$id=$input[$rand_keys[0]];
    echo $id[0];
    echo $id[1];
    /*
    $query=mysql_query("select * from aaa where id='$id'");
    $result=mysql_fetch_array($query);
    print_r($result);*/
    ?>结果:2 4 2       第一个2和第二个2正确了,要输出4怎么没有了呢?
      

  8.   


    $input=array("1", "2", "3", "4");
    $rand_keys = array_rand($input, 2);
    for($i=0;$i<count($rand_keys);$i++){
       $id=$input[$rand_keys[$i]];
       $query=mysql_query("select * from aaa where id='$id'");
       $result=mysql_fetch_array($query);
    }