PHP implémente les enregistrements de navigation et les regroupe par date

不言
Libérer: 2023-03-24 06:02:01
original
1391 Les gens l'ont consulté

Le contenu principal de cet article concerne la mise en œuvre des enregistrements de navigation et le regroupement par date en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Le test existant. les données sont les suivantes, elles sont nécessaires pour obtenir l'effet indiqué dans la figure ci-dessous :




< /tbody>


array(4) { 
 [0] => array(6) { 
 ["visit_id"] => int(127)
 
 ["goods_id"] => int(16) 
 ["visittime"] => int(1494399935) 
 ["goods_name"] => string(53) "OPPO R9s 全网通4G+64G 双卡双待手机 玫瑰金"
 ["shop_price"] => string(6) "500.00"
 } 
 [1] => array(6) { 
 ["visit_id"] => int(124) 
 ["goods_id"] => int(13) 
 ["visittime"] => int(1494399921) 
 ["goods_name"] => string(76) "SIEMENS/西门子 KA92NV09TI双开门家用对开门电冰箱变频旗舰款"
 ["shop_price"] => string(7) "4000.00"
 } 
 [2] => array(6) { 
 ["visit_id"] => int(123) 
 ["goods_id"] => int(27) 
 ["visittime"] => int(1494399903) 
 ["goods_name"] => string(85) "爱他美白金版Aptamil 幼儿配方奶粉3段(12-36个月适用)900g(欧洲进口)"
 ["shop_price"] => string(6) "329.00"
 } 
 [3] => array(6) { 
 ["visit_id"] => int(120) 
 ["goods_id"] => int(26) 
 ["visittime"] => int(1494224263) 
 ["goods_name"] => string(21) "欢乐谷免票一张"
 ["shop_price"] => string(5) "50.00"
 } 
}
Copier après la connexion


/* 浏览记录按日期分组 */
function groupVisit($visit) 
{ 
 $curyear = date(&#39;Y&#39;); 
 $visit_list = []; 
 foreach ($visit as $v) { 
  if ($curyear == date(&#39;Y&#39;, $v[&#39;visittime&#39;])) { 
   $date = date(&#39;m月d日&#39;, $v[&#39;visittime&#39;]); 
  } else { 
   $date = date(&#39;Y年m月d日&#39;, $v[&#39;visittime&#39;]); 
  } 
  $visit_list[$date][] = $v; 
 } 
 return $visit_list; 
}
Copier après la connexion


Avant de l'implémenter, je ne savais pas si ce code nécessiterait O (n) ou une complexité plus élevée à implémenter. Détails Pensez-y, en fait, la couche inférieure du tableau PHP est implémentée par hachage. Comment utiliser simplement cette fonctionnalité pour réduire la complexité à O(1) ?


montre-moi le code :





array(2) { 
 ["05月10日"] => array(3) { 
 [0] => array(6) { 
  ["visit_id"] => int(127) 
  ["goods_id"] => int(16) 
  ["visittime"] => int(1494399935) 
  ["goods_name"] => string(53) "OPPO R9s 全网通4G+64G 双卡双待手机 玫瑰金"
  ["shop_price"] => string(6) "500.00"
 } 
 [1] => array(6) { 
  ["visit_id"] => int(124) 
  ["goods_id"] => int(13) 
  ["visittime"] => int(1494399921) 
  ["goods_name"] => string(76) "SIEMENS/西门子 KA92NV09TI双开门家用对开门电冰箱变频旗舰款"
  ["shop_price"] => string(7) "4000.00"
 } 
 [2] => array(6) { 
  ["visit_id"] => int(123) 
  ["goods_id"] => int(27) 
  ["visittime"] => int(1494399903) 
  ["goods_name"] => string(85) "爱他美白金版Aptamil 幼儿配方奶粉3段(12-36个月适用)900g(欧洲进口)"
  ["shop_price"] => string(6) "329.00"
 } 
 } 
 ["05月08日"] => array(1) { 
 [0] => array(6) { 
  ["visit_id"] => int(120) 
  ["goods_id"] => int(26) 
  ["visittime"] => int(1494224263) 
  ["goods_name"] => string(21) "欢乐谷免票一张"
  ["shop_price"] => string(5) "50.00"
 } 
 } 
}
Copier après la connexion



Remarque : le paramètre d'entrée $visit correspond aux données de test du début ci-dessus. La fonction a également apporté quelques optimisations à l'expérience utilisateur. Par exemple, votre historique de navigation n'affiche pas toujours l'année de cette année. cela semble un peu verbeux ? Donc si c'est cette année, l'année sera masquée et les autres années seront toujours affichées. Sinon le code sera plus propre.


Après avoir transmis les données de test ci-dessus via cette fonction, imprimez la valeur de retour, qui est :




2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34



2

3

4

5

6

7

8

9

10 11

12

13

14

15

16

17

18

19

20 21

22

23

24

25

26

27

28

29

30 31

32

33

34

Oui, c'est exactement l'effet Je veux. Recommandations associées : Comment inverser les chaînes chinoises en PHP pour éviter les caractères tronqués

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