2012-04-16 251 views
1

我的東西,我希望發生的邏輯結構或想法,我希望它在PHP中使用數組進行編碼,這裏的情景:PHP多維數組

10循環/月發生

一個月=>重複

jan => 2 
mar => 1 
sep => 5 
dec => 2 

如以上那樣,我有發生10次的循環,循環的該計數內已經記錄了4個不同的月份,並且每個特定的月份都有可能重複多次,如月份(sep)已經重複5次。這個想法與一個人的記錄相同,例如他/她旅行的月份是什麼以及他在該月內從10次記錄的旅行中旅行了多少次。任何想法如何使用數組在PHP中構建?任何建議或答案非常感謝!

好吧,這是一個真正的交易我想要發生的事情,我從數據庫中提取月份的記錄,然後我想顯示從數據庫中提取的月份以及它重複的次數,例如顯示器是這些:

Jan (2) 
Sep (5) 

我想它是動態的,沒有一定的月會,如果它不從數據庫中記錄存在顯示。

+0

我編輯上面的問題。輸出應該像上面那樣。 – 2012-04-16 20:00:15

回答

3

我認爲他正在嘗試進行基本的頻率分析。假設您的日期以某種方式進入數組,您可以繼續使用strtotime(),日期()函數來生成密鑰,然後解析它們。

首先,創建一些虛擬的數據:

// dummy data; unsure of the format, so going with time()-like structure 
$dates = array(); 
for($i = 0; $i < 10; $i++) { 
    $dates[] = strtotime(sprintf("%s-%s-2012", rand(1,30), rand(1,12))); 
} 

現在執行頻率計數,按月鍵入日期寫的( 「M」 ...):

$freq = array(); 
foreach($dates as $timestamp) { 
    // assuming it's all the same year, discover the month 
    $month = date("M", $timestamp); 

    if(!isset($freq[$month])) $freq[$month] = 0; 
    $freq[$month]++; 
} 

在這一點上,你有類似的東西,你想要什麼:

print_r($freq); 

Array 
(
    [Sep] => 2 
    [Feb] => 2 
    [Nov] => 1 
    [Dec] => 1 
    [Jan] => 2 
    [Apr] => 1 
    [May] => 1 
) 

如果年份不同,你可能要增加一倍,這個聯合不知何故,或者其他。

+0

太棒了,就是這樣!謝謝! – 2012-04-16 20:04:35