Php while循环的数组\u rand()不返回值?

Php while循环的数组\u rand()不返回值?,php,mysql,arrays,Php,Mysql,Arrays,我有一个t1mysql表 数据如下: +-------+-------------+ | ID | type | +---------------------+ | 1 | a | | 2 | a | | 3 | b | | 4 | a | +---------------------+ 我想按a型array\u rand,比如array\u rand(1,2,4

我有一个
t1
mysql表

数据如下:

+-------+-------------+
| ID    | type        |
+---------------------+
| 1     | a           |
| 2     | a           |
| 3     | b           |
| 4     | a           |
+---------------------+
我想按a型
array\u rand
,比如
array\u 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>";
};
$qadfirst=DB::query(“从“.DB::table('t1')”中选择*”,其中type='a');
而($radfirst=DB::fetch($qadfirst)){
$arr=数组($radfirst['id']);
内爆(“,”,$arr);
$random\u keys=array\u rand($arr,1);
echo$arr[$random_keys[0]]。“
”; };
我使用w3school提供的
$random_key
,但仍然不工作,如何使编码工作?谢谢。

这一行
$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\u rand($arr,1)
获取随机键并分配给
$random\u keys
,并且
随机键的值将其用作
$arr
的索引值
$arr[$random_keys]

欢迎您的光临。我很高兴知道“我使用w3school的[…]”–[假装亚当·萨维奇的声音]嗯,这是您的问题!–你真的应该去找一个更好的教程网站。