>  기사  >  백엔드 개발  >  검색 기록 및 날짜별 그룹화를 구현하는 PHP 방법

검색 기록 및 날짜별 그룹화를 구현하는 PHP 방법

墨辰丷
墨辰丷원래의
2018-05-22 15:45:071211검색

이 글은 검색 기록과 날짜별 그룹화를 구현하기 위한 PHP의 예제 코드를 주로 소개합니다. 매우 훌륭하고 참고할만한 가치가 있습니다. 필요하신 분들은 참고하시면 됩니다.

기존 테스트 데이터는 다음과 같습니다. 아래 그림과 같은 효과를 얻습니다.

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

이 코드를 구현하기 전에 잘 생각해보면 O(n) 이상의 복잡성이 필요한지 궁금했습니다. 사실, PHP에서 배열의 맨 아래 레이어는 해싱으로 구현됩니다. 간단하게 이 기능을 사용하여 복잡성을 O(1)로 줄이는 것은 어떻습니까?

코드를 보여주세요:

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

지침: 입력 매개변수 $visit는 위의 시작 부분에 있는 테스트 데이터입니다. 이 함수는 사용자 경험을 위해 일부 최적화도 수행했습니다. 예를 들어, 검색 기록이 항상 표시됩니다. 올해는 약간 중복되는 것 같아서 올해인 경우 해당 연도가 숨겨지고 다른 연도는 계속 표시됩니다. 그렇지 않으면 코드가 더 깔끔해집니다.

이 함수를 통해 위의 테스트 데이터를 전달한 후 다음과 같은 반환 값을 인쇄합니다.

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

예, 이것이 바로 제가 원하는 효과입니다. H 관련 권장사항: pPhp는

Date

Ask a mysql, group by Date group
관련 문제

Date of Date in PHP 시간 처리에 따라 검색 기록 및 그룹 그룹을 구현합니다. 날카로운 무기 예시


위 내용은 검색 기록 및 날짜별 그룹화를 구현하는 PHP 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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