PHP 實現(xiàn)瀏覽記錄并按日期分組
現(xiàn)有測試數(shù)據(jù)如下,要求實現(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 雙卡雙待手機 玫瑰金"
["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(歐洲進(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) "歡樂谷免票一張"
["shop_price"] => string(5) "50.00"
}
}

還沒實現(xiàn)之前我想這個代碼不知道要O(n)呢還是更高的復(fù)雜度才能實現(xiàn),細(xì)想一下,其實php的數(shù)組底層就是哈希實現(xiàn)的,如何簡單利用這個特性使復(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;
}
說明:入?yún)?$visit 就是上面一開始的測試數(shù)據(jù),函數(shù)中還對用戶體驗做了一些優(yōu)化,比如,你的瀏覽記錄中總是顯示出今年的年份,是不是感覺有點冗余,所以如果是本年份的話,年份就要隱藏起來,其他年份還是照樣顯示出來。不然代碼會更加簡潔。
好了上面的測試數(shù)據(jù)經(jīng)過該函數(shù)之后,再把返回值打印出來,有:
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 雙卡雙待手機 玫瑰金"
["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(歐洲進(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) "歡樂谷免票一張"
["shop_price"] => string(5) "50.00"
}
}
}
對的,這正是我想要的效果。
以上所述是小編給大家介紹的PHP 實現(xiàn)瀏覽記錄并按日期分組,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
PHP表單數(shù)據(jù)寫入MySQL數(shù)據(jù)庫的代碼
這篇文章主要介紹了PHP表單數(shù)據(jù)寫入MySQL數(shù)據(jù)庫的相關(guān)資料非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-05-05
淺談PHP中new self()和new static()的區(qū)別
本篇文章主要介紹了淺談PHP中new self()和new static()的區(qū)別 ,具有一定的參考價值,有興趣的可以了解一下2017-08-08
CodeIgniter分頁類pagination使用方法示例
這篇文章主要介紹了CodeIgniter分頁類pagination使用方法,結(jié)合實例形式簡單分析了CodeIgniter框架中的分頁類pagination基本的配置與使用技巧,需要的朋友可以參考下2016-03-03

