Méthode PHP pour mettre en évidence les liens avec un nombre élevé de clics sur la page

墨辰丷
Libérer: 2023-03-29 11:30:02
original
1389 Les gens l'ont consulté

Nous présentons ici la méthode PHP de mise en évidence des liens avec un nombre élevé de clics sur la page. Elle s'inspire principalement d'un certain plug-in de WordPress. Les amis qui en ont besoin peuvent se référer à

. Contexte et exigences

C'est comme dire que le côté gauche de la navigation de la page est constitué de catégories et qu'il existe de nombreux liens sous les catégories. Maintenant, je veux compter celui avec le plus de clics dans toutes les catégories, et faire un traitement spécial sur sa couleur !

La structure générale des données est la suivante :

{
  "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"
    }
 ]
}
Copier après la connexion

Comment classer et mettre en valeur ces données ?

Méthodes et idées

La meilleure façon de le gérer est de l'aligner dans le back-end PHP.

Idée : nous pouvons créer un nouveau tableau de transition, parcourir le tableau d'origine, créer un tableau classifié, puis mettre la valeur maximale et l'ID du nombre de clics dans ce tableau. Par comparaison, obtenez l'ID avec le plus de clics et le nombre de clics dans la catégorie, puis placez l'ID avec le plus de fois dans un nouveau tableau, parcourez les données d'origine et utilisez inarray() pour déterminer si l'ID avec le la plupart du temps, c'est dans le tableau, si oui, ajoutez un champ indicateur 1 aux données, sinon, ce sera 0. Ensuite, le champ marqué d'un 1 est celui avec le plus de clics dans la catégorie.

La sortie json après ajustement est :

 {
    "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
      }
   ]
  }
Copier après la connexion

Le code php est le suivant :

  $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();
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article, J’espère que cela pourra aider l’apprentissage de chacun.

Recommandations associées :

Comment implémenter le téléchargement de pièces jointes sans actualisation avec PHP Ajax

Explication détaillée de l'exemple de code de téléchargement de fichier PHP

PHP Ajax JavaScript Json implémente une méthode d'obtention d'informations météorologiques

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!