PHP将页面中点击数量高的链接进行高亮显示的方法


Posted in PHP onMay 30, 2016

背景和需求

就好比说页面导航的左侧是分类,分类下面有很多链接。我现在想统计所有分类下面点击次数最多的一个,并把其颜色做特殊处理!

大致的数据结构如下:

{
  "content": [
    {
      "id": "1",
      "name": "htmldrive",
      "url": "http://www.htmldrive.net/",
      "cate": "前端开发",
      "clickpoint": "100"
    },
    {
      "id": "2",
      "name": "17素材网",
      "url": "http://www.17sucai.com/",
      "cate": "前端开发",
      "clickpoint": "151"
    },
    {
      "id": "3",
      "name": "阿里妈妈图标库",
      "url": "http://www.iconfont.cn/",
      "cate": "前端开发",
      "clickpoint": "2"
    },
    {
      "id": "53",
      "name": "Animate.css",
      "url": "http://www.haorooms.com/uploads/example/Animatecss/",
      "cate": "前端开发",
      "clickpoint": "21"
    },
    {
      "id": "55",
      "name": "Dafont",
      "url": "http://www.dafont.com/",
      "cate": "字体",
      "clickpoint": "1"
    }
 ]
}
如何对这些数据进行分类高亮显示呢?

方法和思路

最好的处理方式是在后端PHP中对齐进行处理。

思路:我们可以创建一个新的过渡数组,对原来的数组进行循环,创建一个分类的数组,然后把点击次数中的最大值和ID放到这个数组中。通过比较,获取分类中点击次数最多的ID和点击次数,然后把这个次数最多的ID放在一个新的数组中,循环原来的数据,通过inarray(),函数判断次数最多的ID是不是在这个数组当中,是的话,就给数据增加一个标示字段1,不是的话就是0。那么标示字段为1的就是分类中点击次数最多的。

调整之后输出的json是:

 

{
    "content": [
      {
        "id": "1",
        "name": "htmldrive",
        "url": "http://www.htmldrive.net/",
        "cate": "前端开发",
        "clickpoint": "100",
       "max": 0
      },
      {
        "id": "2",
        "name": "17素材网",
        "url": "http://www.17sucai.com/",
        "cate": "前端开发",
        "clickpoint": "151",
        "max": 1
      },
      {
        "id": "3",
        "name": "阿里妈妈图标库",
        "url": "http://www.iconfont.cn/",
        "cate": "前端开发",
        "clickpoint": "2",
        "max": 0
      },
      {
        "id": "53",
        "name": "Animate.css",
        "url": "http://www.haorooms.com/uploads/example/Animatecss/",
        "cate": "前端开发",
        "clickpoint": "21",
        "max": 0
      },
      {
        "id": "55",
        "name": "Dafont",
        "url": "http://www.dafont.com/",
        "cate": "字体",
        "clickpoint": "1",
        "max": 0
      }
   ]
  }

php的代码如下:

$sql = "select id,name,url,cate,clickpoint from commonwebsite order by id asc ";
  $res= $db->getAll($sql);
  $temp_arr = array();
  foreach ($res as $key => $value) {
  if(!isset($temp_arr[$value['cate']])){
   $temp_arr[$value['cate']] = array();
   $temp_arr[$value['cate']]['max'] = $value['clickpoint'];
   $temp_arr[$value['cate']]['id'] = $value['id'];
  }else{
   if($value['clickpoint']>$temp_arr[$value['cate']]['max']){
    $temp_arr[$value['cate']]['max'] = $value['clickpoint'];
    $temp_arr[$value['cate']]['id'] = $value['id'];
   }
  }
  }
 $temp_id = array(); //创建一个存放ID的临时数组
  foreach ($temp_arr as $val) {//循环之前创建的临时数组,存放分类和最多点击次数的
  $temp_id[] = $val['id']; //将点击次数最多的ID赋值给了临时数组
  }
   foreach ($res as $key => $vals) { //循环原来的数据
   if(in_array($vals['id'], $temp_id)){//如果次数最多的ID在原来的数组的ID中,那个加一个字段max并设置其值为1
    $res[$key]['max'] =1;
   }else{
    $res[$key]['max'] =0;//否则不是点击次数最多的,设置为0
   }
  }
  $result['content'] = $res;
    die(json_encode($result)); //json输出
  exit();
PHP 相关文章推荐
JS 网站性能优化笔记
May 24 PHP
让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享
Aug 08 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
PHP is_subclass_of函数的一个BUG和解决方法
Jun 01 PHP
php中chdir()函数用法实例
Nov 13 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
laravel 5.4中实现无限级分类的方法示例
Jul 27 PHP
Eclipse PHPEclipse 配置的具体步骤
Aug 08 PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
PHP如何实现跨域
May 30 #PHP
php while循环控制的简单实例
May 30 #PHP
Yii2中如何使用modal弹窗(基本使用)
May 30 #PHP
[原创]php求圆周率的简单实现方法
May 30 #PHP
smarty中改进truncate使其支持中文的方法
May 30 #PHP
php实现的一段简单概率相关代码
May 30 #PHP
PHP中的表达式简述
May 29 #PHP
You might like
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
PHP系统流量分析的程序
2006/10/09 PHP
BBS(php & mysql)完整版(四)
2006/10/09 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
JS实现的ajax和同源策略(实例讲解)
2017/12/01 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python画图学习入门教程
2016/07/01 Python
Python文件和流(实例讲解)
2017/09/12 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python简单实现AES加密和解密
2019/03/28 Python
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
如何利用find命令查找文件
2015/02/07 面试题
学生党员思想汇报
2013/12/28 职场文书
求职自荐信怎么写
2014/03/06 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
检讨书范文1000字
2015/01/28 职场文书
慰问信范文
2015/02/14 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python