PHP實現將頁面中點擊數量高的連結進行高亮顯示的方法

來源:互聯網
上載者:User
這裡來介紹PHP將頁面中點擊數量高的連結進行高亮顯示的方法,主要受到WordPress中某外掛程式的啟發,需要的朋友可以參考下

背景和需求

就好比說頁面導航的左側是分類,分類下面有很多連結。我現在想統計所有分類下面點擊次數最多的一個,並把其顏色做特殊處理!

大致的資料結構如下:

{  "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();

總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.