《PHP学习:PHP将页面中点击数量高的链接进行高亮显示的方法》要点:
本文介绍了PHP学习:PHP将页面中点击数量高的链接进行高亮显示的方法,希望对您有用。如果有疑问,可以联系我们。
PHP实战背景和需求
PHP实战就好比说页面导航的左侧是分类,分类下面有很多链接.我现在想统计所有分类下面点击次数最多的一个,并把其颜色做特殊处理!
PHP实战大致的数据结构如下:
PHP实战
{
"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实战方法和思路
PHP实战最好的处理方式是在后端PHP中对齐进行处理.
PHP实战思路:我们可以创建一个新的过渡数组,对原来的数组进行循环,创建一个分类的数组,然后把点击次数中的最大值和ID放到这个数组中.通过比较,获取分类中点击次数最多的ID和点击次数,然后把这个次数最多的ID放在一个新的数组中,循环原来的数据,通过inarray(),函数判断次数最多的ID是不是在这个数组当中,是的话,就给数据增加一个标示字段1,不是的话就是0.那么标示字段为1的就是分类中点击次数最多的.
PHP实战调整之后输出的json是:
PHP实战
PHP实战
{
"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实战php的代码如下:
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();
转载请注明本页网址:
http://www.vephp.com/jiaocheng/6290.html