PHP將頁面中點(diǎn)擊數(shù)量高的鏈接進(jìn)行高亮顯示的方法
背景和需求
就好比說頁面導(dǎo)航的左側(cè)是分類,分類下面有很多鏈接。我現(xiàn)在想統(tǒng)計(jì)所有分類下面點(diǎn)擊次數(shù)最多的一個(gè),并把其顏色做特殊處理!
大致的數(shù)據(jù)結(jié)構(gòu)如下:
{ "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": "阿里媽媽圖標(biāo)庫", "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中對齊進(jìn)行處理。
思路:我們可以創(chuàng)建一個(gè)新的過渡數(shù)組,對原來的數(shù)組進(jìn)行循環(huán),創(chuàng)建一個(gè)分類的數(shù)組,然后把點(diǎn)擊次數(shù)中的最大值和ID放到這個(gè)數(shù)組中。通過比較,獲取分類中點(diǎn)擊次數(shù)最多的ID和點(diǎn)擊次數(shù),然后把這個(gè)次數(shù)最多的ID放在一個(gè)新的數(shù)組中,循環(huán)原來的數(shù)據(jù),通過inarray(),函數(shù)判斷次數(shù)最多的ID是不是在這個(gè)數(shù)組當(dāng)中,是的話,就給數(shù)據(jù)增加一個(gè)標(biāo)示字段1,不是的話就是0。那么標(biāo)示字段為1的就是分類中點(diǎn)擊次數(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": "阿里媽媽圖標(biāo)庫", "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)建一個(gè)存放ID的臨時(shí)數(shù)組 foreach ($temp_arr as $val) {//循環(huán)之前創(chuàng)建的臨時(shí)數(shù)組,存放分類和最多點(diǎn)擊次數(shù)的 $temp_id[] = $val['id']; //將點(diǎn)擊次數(shù)最多的ID賦值給了臨時(shí)數(shù)組 } foreach ($res as $key => $vals) { //循環(huán)原來的數(shù)據(jù) if(in_array($vals['id'], $temp_id)){//如果次數(shù)最多的ID在原來的數(shù)組的ID中,那個(gè)加一個(gè)字段max并設(shè)置其值為1 $res[$key]['max'] =1; }else{ $res[$key]['max'] =0;//否則不是點(diǎn)擊次數(shù)最多的,設(shè)置為0 } } $result['content'] = $res; die(json_encode($result)); //json輸出 exit();
- php 正則表達(dá)式提取網(wǎng)頁超級鏈接url的函數(shù)
- PHP正則匹配圖片并給圖片加鏈接詳解
- 檢查url鏈接是否已經(jīng)有參數(shù)的php代碼 添加 ? 或 &
- php 正則 過濾html 的超鏈接
- php將url地址轉(zhuǎn)化為完整的a標(biāo)簽鏈接代碼(php為url地址添加a標(biāo)簽)
- phpMyAdmin 鏈接表的附加功能尚未激活問題的解決方法(已測)
- php 短鏈接算法收集與分析
- windows服務(wù)器下IIS6/7下PHP 無法加載 php_curl.dll 等動態(tài)鏈接庫
- php實(shí)現(xiàn)首頁鏈接查詢 友情鏈接檢查的代碼
- PHP 超鏈接 抓取實(shí)現(xiàn)代碼
- php正則表達(dá)式取得內(nèi)容所有鏈接的方法
- phpMyAdmin鏈接MySql錯(cuò)誤 個(gè)人解決方案
- PHP使用正則表達(dá)式清除超鏈接文本
- phpMyAdmin 鏈接表的附加功能尚未激活的問題
- php 自寫函數(shù)代碼 獲取關(guān)鍵字 去超鏈接
相關(guān)文章
laravel框架分組控制器和分組路由實(shí)現(xiàn)方法示例
這篇文章主要介紹了laravel框架分組控制器和分組路由實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了laravel框架分組控制器和分組路由的基本定義與使用方法,需要的朋友可以參考下2020-01-01Codeigniter控制器controller繼承問題實(shí)例分析
這篇文章主要介紹了Codeigniter控制器controller繼承問題,以簡單實(shí)例形式分析了CodeIgniter中針對控制器controller繼承的實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2016-01-01php 單例模式詳細(xì)介紹及實(shí)現(xiàn)源碼
這篇文章主要介紹了php 單例模式詳細(xì)介紹及實(shí)現(xiàn)源碼的相關(guān)資料,需要的朋友可以參考下2016-11-11php實(shí)現(xiàn)HTML實(shí)體編號與非ASCII字符串相互轉(zhuǎn)換類實(shí)例
本篇文章主要介紹了"php實(shí)現(xiàn)HTML實(shí)體編號與非ASCII字符串相互轉(zhuǎn)換類實(shí)例",主要涉及到HTML實(shí)體編號與非ASCII字符串相互轉(zhuǎn)換類方面的內(nèi)容,感興趣的同學(xué)可以參考一下。2016-11-11簡單的php+mysql聊天室實(shí)現(xiàn)方法(附源碼)
這篇文章主要介紹了簡單的php+mysql聊天室實(shí)現(xiàn)方法,詳細(xì)介紹了數(shù)據(jù)庫,框架頁面,登錄及信息的發(fā)布、展示功能實(shí)現(xiàn)技巧,并附帶了完整源碼供讀者下載參考,需要的朋友可以參考下2016-01-01php設(shè)計(jì)模式之代理模式分析【星際爭霸游戲案例】
這篇文章主要介紹了php設(shè)計(jì)模式之代理模式,結(jié)合星際爭霸游戲案例形式分析了PHP設(shè)計(jì)模式中代理模式的相關(guān)原理、使用方法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03