2011-09-01 31 views
0

標題可能有點含糊,但我不知道如何調用這個問題。把不同循環的數組放在一起

我的表單中有複選框。當他們得到檢查時,他們的價值被張貼到我的數據庫。但是,當他們沒有得到檢查時,我無法跟蹤一次未檢查,因爲嗯,這就是它的工作原理,對吧?

例如,對於從2008年8月21日至2011年8月25日運行的活動,當客人選擇他只需要第21和23日的門票時(票不是唯一的價值,這將是這裏的最終結果,只是爲了簡潔):

Array 
(
[2011-08-21] => Array 
    (
     [ticket] => 1 
    ) 

[2011-08-23] => Array 
    (
     [ticket] => 1 
    ) 

) 

不過,我也想跟蹤的其他日子,他並不需要一張票。所以,我需要這樣的一個數組:

Array 
(
    [2011-08-21] => Array 
     (
      [ticket] => 1 
     ) 
    [2011-08-23] => Array 
     (
      [ticket] => 0 
     ) 
    [2011-08-23] => Array 
     (
      [ticket] => 1 
     ) 
    [2011-08-23] => Array 
     (
      [ticket] => 0 
     ) 

    [2011-08-23] => Array 
     (
      [ticket] => 0 
     ) 
) 

這樣我可以跟蹤我的DB的一切(這是這個項目所需的)的。我只是不太確定如何將第一個數組變成第二個數組。我一直在試圖與和foreach循環,它與我的event_details陣列看起來像這樣結合:

Array 
(
    [eventID] => 1 
    [groupID] => 3 
    [name] => Moto GP 1 
    [startDate] => 2011-08-21 
    [endDate] => 2011-08-25 
    [number_of_days] => 5 
    [startDate_f] => 21/08/11 
    [endDate_f] => 25/08/11 
) 

隨着該陣列中的數據,我可以計算出所有活動的日子,但我只是不太確定如何正確地去做。任何幫助?非常感謝。

回答

0

未經檢驗的,但這樣的:

$selected_days = /* Wherever you get the posted array data from */; 

$start = new DateTime($event_details['startDate']); 
$end = new DateTime($event_details['endDate']); 

while ($start <= $end) { 
    $key = $start->format('Y-m-d'); 

    if (!array_key_exists($key, $selected_days)) 
     $selected_days[$key] = array('ticket' => 0); 

    $start->modify('+1 day'); 
} 
+0

謝謝你,你是一個英雄。 – cabaret

相關問題