PHP將頁(yè)面中點(diǎn)擊數(shù)量高的鏈接進(jìn)行高亮顯示的方法
來(lái)源:易賢網(wǎng) 閱讀:823 次 日期:2016-08-18 15:11:42
溫馨提示:易賢網(wǎng)小編為您整理了“PHP將頁(yè)面中點(diǎn)擊數(shù)量高的鏈接進(jìn)行高亮顯示的方法”,方便廣大網(wǎng)友查閱!

這里來(lái)介紹PHP將頁(yè)面中點(diǎn)擊數(shù)量高的鏈接進(jìn)行高亮顯示的方法,主要受到WordPress中某插件的啟發(fā),需要的朋友可以參考下

背景和需求

就好比說(shuō)頁(yè)面導(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)庫(kù)",

      "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"

    }

 ]

}

如何對(duì)這些數(shù)據(jù)進(jìn)行分類高亮顯示呢?

方法和思路

最好的處理方式是在后端PHP中對(duì)齊進(jìn)行處理。

思路:我們可以創(chuàng)建一個(gè)新的過(guò)渡數(shù)組,對(duì)原來(lái)的數(shù)組進(jìn)行循環(huán),創(chuàng)建一個(gè)分類的數(shù)組,然后把點(diǎn)擊次數(shù)中的最大值和ID放到這個(gè)數(shù)組中。通過(guò)比較,獲取分類中點(diǎn)擊次數(shù)最多的ID和點(diǎn)擊次數(shù),然后把這個(gè)次數(shù)最多的ID放在一個(gè)新的數(shù)組中,循環(huán)原來(lái)的數(shù)據(jù),通過(guò)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)庫(kù)",

       "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)原來(lái)的數(shù)據(jù)

  if(in_array($vals['id'], $temp_id)){//如果次數(shù)最多的ID在原來(lái)的數(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();

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)