이 글은 검색 기록과 날짜별 그룹화를 구현하기 위한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!