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 输出双引号"与单引号'的方法
May 09 PHP
php向js函数传参的几种方法
Aug 10 PHP
微信公众平台开发关注及取消关注事件的方法
Dec 23 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
PHP+Redis开发的书签案例实战详解
Jul 09 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 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图片上传类带图片显示
2006/11/25 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
php之Memcache学习笔记
2013/06/17 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
javascript 一个函数对同一元素的多个事件响应
2009/07/25 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
vue cli 全面解析
2018/02/28 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
[01:11:48]Fnatic vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
使用python模拟高斯分布例子
2019/12/09 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
收银员岗位职责范本
2015/04/07 职场文书
2016年猴年新春致辞
2015/08/01 职场文书