Maison  >  Article  >  développement back-end  >  PHP implémente les enregistrements de navigation et les regroupe par date

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

不言
不言original
2018-04-16 14:12:391379parcourir

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 :





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


/* 浏览记录按日期分组 */
function groupVisit($visit) 
{ 
 $curyear = date('Y'); 
 $visit_list = []; 
 foreach ($visit as $v) { 
  if ($curyear == date('Y', $v['visittime'])) { 
   $date = date('m月d日', $v['visittime']); 
  } else { 
   $date = date('Y年m月d日', $v['visittime']); 
  } 
  $visit_list[$date][] = $v; 
 } 
 return $visit_list; 
}


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



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!

Déclaration:
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
Article précédent:PHP conserve deux décimalesArticle suivant:PHP conserve deux décimales