zoukankan      html  css  js  c++  java
  • Thinkphp 获取数据表随机值

    有时候我们需要去获取数据表中随机条数据用于展示,比如新闻推荐、人员推荐等

     1     /**
     2      * 获取随机列表
     3      * @param $num             获取的记录数
     4      * @param array $map       筛选条件
     5      * @param string $key      主键id
     6      * @return mixed
     7      */
     8     public function randomDataList($num, $map = [], $key = 'id'){
     9         # 获取到所有满足条件的 key
    10         $ids = $this->where($map)->group($key)->getField($key, true);
    11         if (count($ids) > $num){
    12             $arr = [];
    13             # 获取到随机数组
    14             $keys = array_rand($ids,$num);
    15             foreach ($keys as $v){
    16                 $arr[] = $ids[$v];
    17             }
    18             # 再次构造查询条件
    19             if(empty($arr)){
    20                 return [];
    21             }  else {
    22                 $map= [$key => ['IN', $arr]];
    23             }
    24             $moreData =  $this->where($map)->limit($num)->select();
    25         } else {
    26             $moreData =  $this->where($map)->limit($num)->select();
    27         }
    28         return $moreData;
    29     }
  • 相关阅读:
    pyQt5新手教程 (二)开始你的旅程-编写
    未来写作
    电脑使用问题
    cad学习问题
    chm制作
    github学习之路
    python解决实际问题
    英语学习
    经济学
    通过playgrounds程序学习swift语言及思想
  • 原文地址:https://www.cnblogs.com/hardykay/p/12572081.html
Copyright © 2011-2022 走看看