2014-02-27 249 views
0

我有一些像這樣的變量:與可變+ PHP數量遞增變量

$_8 = 0; $_9 = 0; $_10 = 0; $_11 = 0; $_12 = 0; $_13 = 0; $_14 = 0; $_15 = 0; $_16 = 0; $_17 = 0; $_18 = 0; $data = array(); 

然後我執行以下操作:

$vistoday = $app['db']->fetchAll('SELECT `Datum Bezoek 1` FROM `psttodo-uit` WHERE CAST(`Datum Bezoek 1` AS DATE) = CURRENT_DATE AND PB = 1'); 

foreach($vistoday as $v){ 
    $date = strtotime($v['Datum Bezoek 1']); 
    $hours = (int)date('h', $date); 
    $minutes = (int)date('i', $date); 

    if($minutes > 30) 
    { 
     $hours = $hours + 1; 
     $count = ${"_" . $hours} + 1; 
     $data[$hours] = $count; 
    } 
    else 
    { 
     $data[$hours] = ${"_" . $hours}+1; 
    } 
} 

這些都是我從數據庫中提取的日期:

  • 2014-02-27 08:25:34
  • 2014-02-27 08:50:34
  • 2014年2月27日8時55分34秒

當我輸出$數據我得到這個:

array (size=2) 
    8 => int 1 
    9 => int 1 

但通常的9鍵的值應該是2,所以他不噸增量,他只是增加1沒有。有人可以幫助我嗎?

+7

你想要一個數組變量。在我之後重複:使用數組完成這個要好得多! – deceze

+0

你會怎麼做一個數組?你能給我一個小費嗎? – nielsv

+1

另外,爲什麼你不在數據庫中? – Olavxxx

回答

2

Yoг不需要像$ 3-8

foreach($vistoday as $v){ 
    $date = strtotime($v['Datum Bezoek 1']); 
    $hours = (int)date('h', $date); 
    $minutes = (int)date('i', $date); 

    $hours = round($hours + $minutes/61); // if $minutes > 30 ceil else floor 
    $data[$hours] = isset($data[$hours]) ? $data[$hours] + 1 : 1; 
}