2012-04-03 97 views
0

我的var_dump看起來像這樣,我知道我得到的錯誤,因爲我傳遞的是數組而不是字符串。但我該如何解決它?數組和日期在php

array 
    0 => 
    array 
     'date_submitted' => string '2012-03-22 19:28:22' (length=19) 
    1 => 
    array 
     'date_submitted' => string '2012-03-28 21:31:28' (length=19) 

我的功能

function getArticle() { 

    $article = new Article('x'); 
    $arr = $article->getArticles(); 

    $date= null; 
    foreach($arr as $record){ 
     $currentDate = date('l, F j', strtotime($record['date_submitted'])); 

     if ($currentDate != $date) { 
      echo set_format_date($record['date_submitted'],'l, F j'); 
     } 
     $date = $currentDate; 
    } 
} 

使用$x=0;然後$x++;嘗試,但返回Undefined offset: 0 這樣$record[$x]['date_submitted'];,它沒有工作。

+2

「錯誤」 - 這是什麼「錯誤」?你不是傳遞一個數組到strtotime,你傳遞一個數組的字符串成員,所以它不可能是這樣。 – 2012-04-03 20:41:14

+0

你是什麼變量'var_dump'ing ?? – PenguinCoder 2012-04-03 20:42:19

+0

@PenguinCoder我創建了一個名爲$ arr的數組,並使用while循環觸及每個數據庫記錄並使用$ result-> fetch_assoc(),我將一個數組推到另一個數組,$ arr – SupaOden 2012-04-03 20:44:12

回答

0

如果您希望在foreach循環內操作數組本身,您必須引用該值。

foreach($arr as &$record){ 
    // ... 
} 

如果您現在在循環內操作$記錄,$ arr實際上將包含您操作的值。否則$ record就在循環的範圍內。