Maison  >  Article  >  développement back-end  >  Méthode PHP pour implémenter les enregistrements de navigation et le regroupement par date

Méthode PHP pour implémenter les enregistrements de navigation et le regroupement par date

墨辰丷
墨辰丷original
2018-05-22 15:45:071166parcourir

Cet article présente principalement l'exemple de code PHP pour implémenter les enregistrements de navigation et le regroupement par date. Il est très bon et a une valeur de référence. Les amis dans le besoin peuvent s'y référer

Les données de test existantes sont les suivantes. , et les exigences sont les suivantes L'effet dans l'image :

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

Avant de le mettre en œuvre, je l'ai fait Je ne sais pas que ce code serait O(n) Ou peut-il être réalisé avec une complexité plus élevée ? Si vous y réfléchissez bien, 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) ?

montrez-moi le code :

/* 浏览记录按日期分组 */
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;
}

Explication : Le paramètre d'entrée $visit correspond aux données de test au début ci-dessus, et le La fonction contient également les éléments suivants L'expérience utilisateur a été optimisée. Par exemple, l'année de cette année est toujours affichée dans votre historique de navigation. Cela ne vous semble-t-il pas un peu redondant ? Donc, si c'est cette année, l'année sera masquée, et les autres. les 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, il y a :

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

Oui, c'est exactement l'effet que je souhaite.

Recommandations associées :

PHP implémente la navigation dans les enregistrements et les groupes par date

Demandez à un mysql , Regrouper par Regroupement par dateProblèmes liés à la requête

Explication détaillée de DateInstance de l'outil de traitement du temps en PHP

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