我有一个t1
mysql表。
以下是数据:
+-------+-------------+
| ID | type |
+---------------------+
| 1 | a |
| 2 | a |
| 3 | b |
| 4 | a |
+---------------------+
我希望array_rand
输入类型array_rand(1,2,4);
我尝试编码如下:
$qadfirst = DB::query("SELECT * FROM ".DB::table('t1')." WHERE type = 'a'");
while($radfirst = DB::fetch($qadfirst)){
$arr = array($radfirst['id']);
implode(",",$arr);
$random_keys=array_rand($arr,1);
echo $arr[$random_keys[0]]."<br>";
};
我使用w3school的$random_keys
,但仍然无法正常工作,如何使编码工作?谢谢。
答案 0 :(得分:1)
这一行
$arr = array($radfirst['id']);
每次都会替换$arr
的值
从循环内的数据库中获取一个ID,这将导致一个数组在循环结束时只为其分配一个值。
$arr array(1)
integer 4
做这样的事情
<?php
$i = 0;
while($radfirst = DB::fetch($qadfirst)){
$arr[$i++] = $radfirst['id'];
}
$random_keys = array_rand($arr, 1);
echo $arr[$random_keys]."<br>";
?>
当您从数据库循环访问ID时,获取ID并将其分配给$arr
类型数组,并使用$i
或您选择的任何变量递增索引值。
在循环之外,使用array_rand($arr, 1)
获取随机密钥并分配给$random_keys
,random_keys
的值将其用作$arr
的索引值。 $arr[$random_keys]
。