現(xiàn)有測(cè)試數(shù)據(jù)如下,要求實(shí)現(xiàn)如下圖中的效果:
array(4) { [0] => array(6) { ["visit_id"] => int(127) ["goods_id"] => int(16) ["visittime"] => int(1494399935) ["goods_name"] => string(53) "OPPO R9s 全網(wǎng)通4G+64G 雙卡雙待手機(jī) 玫瑰金" ["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/西門(mén)子 KA92NV09TI雙開(kāi)門(mén)家用對(duì)開(kāi)門(mén)電冰箱變頻旗艦款" ["shop_price"] => string(7) "4000.00" } [2] => array(6) { ["visit_id"] => int(123) ["goods_id"] => int(27) ["visittime"] => int(1494399903) ["goods_name"] => string(85) "愛(ài)他美白金版Aptamil 幼兒配方奶粉3段(12-36個(gè)月適用)900g(歐洲進(jìn)口)" ["shop_price"] => string(6) "329.00" } [3] => array(6) { ["visit_id"] => int(120) ["goods_id"] => int(26) ["visittime"] => int(1494224263) ["goods_name"] => string(21) "歡樂(lè)谷免票一張" ["shop_price"] => string(5) "50.00" } }
還沒(méi)實(shí)現(xiàn)之前我想這個(gè)代碼不知道要O(n)呢還是更高的復(fù)雜度才能實(shí)現(xiàn),細(xì)想一下,其實(shí)php的數(shù)組底層就是哈希實(shí)現(xiàn)的,如何簡(jiǎn)單利用這個(gè)特性使復(fù)雜度降到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; }
說(shuō)明:入?yún)?$visit 就是上面一開(kāi)始的測(cè)試數(shù)據(jù),函數(shù)中還對(duì)用戶體驗(yàn)做了一些優(yōu)化,比如,你的瀏覽記錄中總是顯示出今年的年份,是不是感覺(jué)有點(diǎn)冗余,所以如果是本年份的話,年份就要隱藏起來(lái),其他年份還是照樣顯示出來(lái)。不然代碼會(huì)更加簡(jiǎn)潔。
好了上面的測(cè)試數(shù)據(jù)經(jīng)過(guò)該函數(shù)之后,再把返回值打印出來(lái),有:
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 全網(wǎng)通4G+64G 雙卡雙待手機(jī) 玫瑰金" ["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/西門(mén)子 KA92NV09TI雙開(kāi)門(mén)家用對(duì)開(kāi)門(mén)電冰箱變頻旗艦款" ["shop_price"] => string(7) "4000.00" } [2] => array(6) { ["visit_id"] => int(123) ["goods_id"] => int(27) ["visittime"] => int(1494399903) ["goods_name"] => string(85) "愛(ài)他美白金版Aptamil 幼兒配方奶粉3段(12-36個(gè)月適用)900g(歐洲進(jìn)口)" ["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) "歡樂(lè)谷免票一張" ["shop_price"] => string(5) "50.00" } } }
對(duì)的,這正是我想要的效果。
以上所述是小編給大家介紹的PHP 實(shí)現(xiàn)瀏覽記錄并按日期分組,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)網(wǎng)站的支持!
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。