PHP將頁面中點擊數(shù)量高的鏈接進行高亮顯示的方法
背景和需求
就好比說頁面導航的左側是分類,分類下面有很多鏈接。我現(xiàn)在想統(tǒng)計所有分類下面點擊次數(shù)最多的一個,并把其顏色做特殊處理!
大致的數(shù)據(jù)結構如下:
{
"content": [
{
"id": "1",
"name": "htmldrive",
"url": "http://www.htmldrive.net/",
"cate": "前端開發(fā)",
"clickpoint": "100"
},
{
"id": "2",
"name": "17素材網(wǎng)",
"url": "http://www.17sucai.com/",
"cate": "前端開發(fā)",
"clickpoint": "151"
},
{
"id": "3",
"name": "阿里媽媽圖標庫",
"url": "http://www.iconfont.cn/",
"cate": "前端開發(fā)",
"clickpoint": "2"
},
{
"id": "53",
"name": "Animate.css",
"url": "http://www.haorooms.com/uploads/example/Animatecss/",
"cate": "前端開發(fā)",
"clickpoint": "21"
},
{
"id": "55",
"name": "Dafont",
"url": "http://www.dafont.com/",
"cate": "字體",
"clickpoint": "1"
}
]
}
方法和思路
最好的處理方式是在后端PHP中對齊進行處理。
思路:我們可以創(chuàng)建一個新的過渡數(shù)組,對原來的數(shù)組進行循環(huán),創(chuàng)建一個分類的數(shù)組,然后把點擊次數(shù)中的最大值和ID放到這個數(shù)組中。通過比較,獲取分類中點擊次數(shù)最多的ID和點擊次數(shù),然后把這個次數(shù)最多的ID放在一個新的數(shù)組中,循環(huán)原來的數(shù)據(jù),通過inarray(),函數(shù)判斷次數(shù)最多的ID是不是在這個數(shù)組當中,是的話,就給數(shù)據(jù)增加一個標示字段1,不是的話就是0。那么標示字段為1的就是分類中點擊次數(shù)最多的。
調(diào)整之后輸出的json是:
{
"content": [
{
"id": "1",
"name": "htmldrive",
"url": "http://www.htmldrive.net/",
"cate": "前端開發(fā)",
"clickpoint": "100",
"max": 0
},
{
"id": "2",
"name": "17素材網(wǎng)",
"url": "http://www.17sucai.com/",
"cate": "前端開發(fā)",
"clickpoint": "151",
"max": 1
},
{
"id": "3",
"name": "阿里媽媽圖標庫",
"url": "http://www.iconfont.cn/",
"cate": "前端開發(fā)",
"clickpoint": "2",
"max": 0
},
{
"id": "53",
"name": "Animate.css",
"url": "http://www.haorooms.com/uploads/example/Animatecss/",
"cate": "前端開發(fā)",
"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(); //創(chuàng)建一個存放ID的臨時數(shù)組
foreach ($temp_arr as $val) {//循環(huán)之前創(chuàng)建的臨時數(shù)組,存放分類和最多點擊次數(shù)的
$temp_id[] = $val['id']; //將點擊次數(shù)最多的ID賦值給了臨時數(shù)組
}
foreach ($res as $key => $vals) { //循環(huán)原來的數(shù)據(jù)
if(in_array($vals['id'], $temp_id)){//如果次數(shù)最多的ID在原來的數(shù)組的ID中,那個加一個字段max并設置其值為1
$res[$key]['max'] =1;
}else{
$res[$key]['max'] =0;//否則不是點擊次數(shù)最多的,設置為0
}
}
$result['content'] = $res;
die(json_encode($result)); //json輸出
exit();
- php 正則表達式提取網(wǎng)頁超級鏈接url的函數(shù)
- PHP正則匹配圖片并給圖片加鏈接詳解
- 檢查url鏈接是否已經(jīng)有參數(shù)的php代碼 添加 ? 或 &
- php 正則 過濾html 的超鏈接
- php將url地址轉化為完整的a標簽鏈接代碼(php為url地址添加a標簽)
- phpMyAdmin 鏈接表的附加功能尚未激活問題的解決方法(已測)
- php 短鏈接算法收集與分析
- windows服務器下IIS6/7下PHP 無法加載 php_curl.dll 等動態(tài)鏈接庫
- php實現(xiàn)首頁鏈接查詢 友情鏈接檢查的代碼
- PHP 超鏈接 抓取實現(xiàn)代碼
- php正則表達式取得內(nèi)容所有鏈接的方法
- phpMyAdmin鏈接MySql錯誤 個人解決方案
- PHP使用正則表達式清除超鏈接文本
- phpMyAdmin 鏈接表的附加功能尚未激活的問題
- php 自寫函數(shù)代碼 獲取關鍵字 去超鏈接
相關文章
PHP守護進程化在C和PHP環(huán)境下的實現(xiàn)
這篇文章主要介紹了PHP守護進程化的實現(xiàn)的方法以及原理過程,以及在C環(huán)境和PHP環(huán)境下實現(xiàn)的代碼,喜歡的朋友收藏一下。2017-11-11

