php - 如何允许数组中重复的mysql行id?

标签 php mysql arrays

我在表t1中的数据如下(只有2条记录),

+-----------+-----------------+----------+
| shid      | lvlmin          | lvlmax   |
+-----------+-----------------+----------+
| 1         | 1               | 10       |
| 2         | 5               | 10       |
+----------------------------------------+

我的 php 代码是:

$userinfo[0] = '9';
$ghunt = DB::fetch_all("SELECT shid FROM t1 
     WHERE lvlmin <= ".$userinfo[0]." AND lvlmax >= ".$userinfo[0].
    "ORDER BY rand() LIMIT 5");
print_r($ghunt);

结果得到2个数组:

数组 ( [0] => 数组 ( [shid] => 2 ) [1] => 数组 ( [shid] => 1 ) )

mysql查询时数组结果小于LIMIT 5时,自动使用$ghunt中的数组结果来填充数组怎么办?

我的意思是:

Array ( 
  [0] => Array ( [shid] => 2 )
  [1] => Array ( [shid] => 1 ) 
  [2] => Array ( [shid] => 2 ) 
  [3] => Array ( [shid] => 1 ) 
  [4] => Array ( [shid] => 1 )
)

shid 可以是数组中的随机位置。

最佳答案

你为什么不做这样的事情呢?

If (count($ghunt) < 5){
    $realResultCount = count($ghunt);
    for ($i = realResultCount; $i <= 5; $i++){
        $ghunt[$i] = $ghunt[rand(0,realResultCount-1)];
    }
}

基本上,上面代码的作用是,如果 ghunt 中的记录少于 5 条,它会通过从最初返回的记录中随机选择记录来将其增加到 5 条。

关于php - 如何允许数组中重复的mysql行id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47958374/

相关文章:

javascript - 基于php变量的mysql查询

javascript - 如果不存在则将对象推送到空数组angularjs

java - 如何在android中单击按钮时将值添加到数组

javascript - 在两个不同的点击事件之间传递数组值

php - 如何在 PHP 脚本中获取实际内存限制?

php - 验证存储在 Redis 中的 PHP session 变量并使用另一个应用程序访问它

php - 更新多个字段

mysql order by SUM(column) group'd by another column

javascript - 如何将PHP脚本放入JS?

php - mySql 查询未找到该行