この記事では主に閲覧記録と日付によるグループ化を実装するための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 に従ってレコードの参照とグループ グループを実現します mysql に質問し、 Date グループでグループ化します
クエリの関連問題
PHP の Date of Date 時間処理 詳細な説明鋭利な武器の例
以上が閲覧記録と日付によるグループ化を実装する PHP メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。