syntax error, unexpected '[', expecting ']'什么错误?

gavin239509 2009-09-16 10:05:36
如何把利用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~~~~~~
...全文
1001 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dzxccsu 2009-09-16
  • 打赏
  • 举报
回复

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

gavin239509 2009-09-16
  • 打赏
  • 举报
回复
$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......这样的错误提示!
dzxccsu 2009-09-16
  • 打赏
  • 举报
回复

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);看看
gavin239509 2009-09-16
  • 打赏
  • 举报
回复
数组$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无疑是错误的....怎么回事呢 ?
dzxccsu 2009-09-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gavin239509 的回复:]
用你的方法试了,print_r($b)后,输出的结果是Array ( [0] => Array ( [0] => 1 [1] => 2 ) )
我希望的结果是输出结果是Array ( [0] => 1 [1] => 2 )
[/Quote]$b=array_rand($a,2);print_r($b);
gavin239509 2009-09-16
  • 打赏
  • 举报
回复
用你的方法试了,print_r($b)后,输出的结果是Array ( [0] => Array ( [0] => 1 [1] => 2 ) )
我希望的结果是输出结果是Array ( [0] => 1 [1] => 2 )
dzxccsu 2009-09-16
  • 打赏
  • 举报
回复
$b=array_rand($a,2);//在数组$a中随机取得两个值并赋给数组$b ===》

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

gavin239509 2009-09-16
  • 打赏
  • 举报
回复
可以了,谢谢你噢!!!!
dzxccsu 2009-09-16
  • 打赏
  • 举报
回复

$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);
}

gavin239509 2009-09-16
  • 打赏
  • 举报
回复
好像$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怎么没有了呢?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧