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 var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
PHP 验证登陆类分享
Mar 13 PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
Sep 29 PHP
PHP实现linux命令tail -f
Feb 22 PHP
CI分页类首页、尾页不显示的解决方法
Mar 28 PHP
PHP模块化安装教程
Jun 01 PHP
php+flash+jQuery多图片上传源码分享
Jul 27 PHP
php正则表达式基本知识与应用详解【经典教程】
Apr 17 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
PHP关于foreach复制知识点总结
Jan 28 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
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
PHP 实现判断用户是否手机访问
2015/01/21 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
php集成开发环境详解
2019/09/24 PHP
JavaScript 原型链学习总结
2010/10/29 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
jsTree使用记录实例
2016/12/01 Javascript
Jquery Easyui搜索框组件SearchBox使用详解(19)
2016/12/17 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
关于angular引入ng-zorro的问题浅析
2020/09/09 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
python3.4爬虫demo
2019/01/22 Python
python第三方库学习笔记
2020/02/07 Python
实现向右循环移位
2014/07/31 面试题
医学护理系毕业生求职信
2013/10/01 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
幼儿园安全责任书
2014/04/14 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
保研导师推荐信
2015/03/25 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript
Java完整实现记事本代码
2022/06/16 Java/Android