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教程 基本语法
Oct 23 PHP
php抓取页面与代码解析 推荐
Jul 23 PHP
php异常处理使用示例
Feb 25 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
php多次include后导致全局变量global失效的解决方法
Feb 28 PHP
yii2中使用Active Record模式的方法
Jan 09 PHP
详解php中反射的应用
Mar 15 PHP
CI映射(加载)数据到view层的方法
Mar 28 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
php + WebUploader实现图片批量上传功能
May 06 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字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
php 读取文件乱码问题
2010/02/20 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
laravel框架添加数据,显示数据,返回成功值的方法
2019/10/11 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
JS小球抛物线轨迹运动的两种实现方法详解
2017/12/20 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
微信小程序日期时间选择器使用方法
2018/02/01 Javascript
详解Jest结合Vue-test-utils使用的初步实践
2019/06/27 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
2020/04/18 Python
python numpy数组中的复制知识解析
2020/02/03 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
园艺师求职信
2014/03/10 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
2016年中秋节慰问信
2015/12/01 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
Redis 异步机制
2022/05/15 Redis
windows系统安装配置nginx环境
2022/06/28 Servers