2012-04-03 3 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++;를 사용하여 시도

하지만이 $record[$x]['date_submitted']; 같은 Undefined offset: 0 를 반환, 그것은 일을 일부러.

+2

"오류"-이 "오류"는 무엇입니까? strtotime에 배열을 전달하지 않고 배열의 문자열 멤버를 전달하므로 그렇게 할 수 없습니다. –

+0

당신은 어떤 변수를'var_dump'하고 있습니까 ?? – PenguinCoder

+0

@PenguinCoder $ arr이라는 배열을 만들었고 각 데이터베이스 레코드를 루핑하면서 $ result-> fetch_assoc()을 사용하여 배열을 다른 배열 $ arr에 밀어 넣었습니다 – SupaOden

답변

0

foreach 루프 내에서 배열 자체를 조작하려면 값을 참조해야합니다.

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

루프 내에서 $ 레코드를 조작하면 $ arr에 실제로 조작 한 값이 포함됩니다. 그렇지 않으면 $ record가 루프의 범위 내에 있습니다.