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 insert语法详解
Jun 07 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Mar 10 PHP
PHP 采集程序中常用的函数
Dec 09 PHP
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
php 模拟POST|GET操作实现代码
Jul 20 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
PHP使用curl_multi实现并发请求的方法示例
Apr 29 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 PHP
Yii框架组件的事件机制原理与用法分析
Apr 07 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数组应该有多大的分析
2009/07/30 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
JS查找孩子节点简单示例
2019/07/25 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
python解析文件示例
2014/01/23 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
python实现的Iou与Giou代码
2020/01/18 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
用python实现一个简单的验证码
2020/12/09 Python
html5使用canvas绘制一张图片
2014/12/15 HTML / CSS
金融专业个人的自我评价
2013/10/18 职场文书
财经学院自荐信范文
2014/02/02 职场文书
离职感谢信
2015/01/21 职场文书
小学教师岗位职责
2015/04/02 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript