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 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
使用PHP模拟HTTP认证
Oct 09 PHP
php中的观察者模式
Mar 24 PHP
php获取URL中带#号等特殊符号参数的解决方法
Sep 02 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
php实现编辑和保存文件的方法
Jul 20 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
laravel清除视图缓存的代码
Oct 23 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
laravel返回统一格式错误码问题
Nov 04 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 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
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
js return返回多个值,通过对象的属性访问方法
2017/02/21 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
Python多进程fork()函数详解
2019/02/22 Python
python安装scipy的步骤解析
2019/09/28 Python
Python如何telnet到网络设备
2021/02/18 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
分公司任命书
2014/06/06 职场文书
环卫工人节活动总结
2014/08/29 职场文书
2014年商场工作总结
2014/11/22 职场文书
仰望星空观后感
2015/06/10 职场文书
风之谷观后感
2015/06/11 职场文书
浅谈redis整数集为什么不能降级
2021/07/25 Redis