>  기사  >  백엔드 개발  >  페이지에서 클릭 수가 많은 링크를 강조 표시하는 PHP 방법

페이지에서 클릭 수가 많은 링크를 강조 표시하는 PHP 방법

墨辰丷
墨辰丷원래의
2018-06-02 09:33:421386검색

페이지에서 클릭 수가 많은 링크를 강조 표시하는 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();

요약: 위는 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

관련 권장 사항:

PHP Ajax를 사용하여 새로 고침 없는 첨부 파일 업로드를 구현하는 방법

PHP 파일 다운로드 예제 코드에 대한 자세한 설명

날씨 정보 가져오기를 구현하는 PHP Ajax JavaScript Json 방법

위 내용은 페이지에서 클릭 수가 많은 링크를 강조 표시하는 PHP 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.