什么是Web應用防火墻(WAF防火墻)?
997
2023-11-22
現有測試數據如下,要求實現如下圖中的效果:
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)呢?
show me the 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; }
說明:入參 $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" } } }
對的,這正是我想要的效果。
以上所述是小編給大家介紹的PHP 實現瀏覽記錄并按日期分組,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對綠夏網網站的支持!
#免責聲明#
本站[綠夏技術導航]提供的一切軟件、教程和內容信息僅限用于學習和研究目的;不得將上述內容用于商業或者非法用途,否則,一切后果請用戶自負。本站信息來自網絡收集整理,版權爭議與本站無關。您必須在下載后的24個小時之內,從您的電腦或手機中徹底刪除上述內容。如果您喜歡該程序或內容,請支持正版,購買注冊,得到更好的正版服務。我們非常重視版權問題,如有侵權請郵件[admin@lxwl520.com]與我們聯系進行刪除處理。敬請諒解!