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 相关文章推荐
PHP 选项及相关信息函数库
Dec 04 PHP
PHP正确配置mysql(apache环境)
Aug 28 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
PHP切割汉字的常用方法实例总结
Apr 27 PHP
thinkphp5+layui实现的分页样式示例
Oct 08 PHP
php多进程中的阻塞与非阻塞操作实例分析
Mar 04 PHP
基于PHP实现用户在线状态检测
Nov 10 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
星际争霸秘籍
2020/03/04 星际争霸
php生成略缩图代码
2012/07/16 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
JavaScript使用yield模拟多线程的方法
2015/03/19 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
在Python中操作文件之truncate()方法的使用教程
2015/05/25 Python
matplotlib绘图实例演示标记路径
2018/01/23 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
简述python Scrapy框架
2020/08/17 Python
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
如何定义一个可复用的服务
2014/09/30 面试题
自荐信写法介绍
2014/01/25 职场文书
工程建设实施方案
2014/03/14 职场文书
三万活动总结
2014/04/28 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
微观世界观后感
2015/06/10 职场文书
新郎婚礼致辞
2015/07/27 职场文书