2013-08-05 2 views
1

이것은 흥미롭지 만 그다지 저를 잃어 버렸습니다. 나는 Workday라고 불리는 배열의 'order'객체를 가지고 있는데, 만약 print_r 배열을 사용하면 다음과 같은 결과를 얻는다;PHP 배열이 올바르게 반복되지 않습니다. 첫 번째 결과 만받습니다.

Workday Object 
(
    [workday] => Array 
     (
      [0] => Order Object 
       (
        [id] => 3 
        [date] => 2013-08-02 
        [username] => userXYZ 
        [number] => 33333333 
        [duration_start] => 20:51:00 
        [duration_end] => 21:51:00 
        [total] => $340.00 
       ) 

      [1] => Order Object 
       (
        [id] => 3 
        [date] => 2013-08-03 
        [username] => userXXA 
        [number] => 87653212 
        [duration_start] => 10:51:00 
        [duration_end] => 11:54:00 
        [total] => $20.00 
       ) 

      [2] => Order Object 
       (
        [id] => 3 
        [date] => 2013-08-01 
        [username] => userXYD 
        [number] => 12345678 
        [duration_start] => 08:37:00 
        [duration_end] => 10:01:00 
        [total] => $10.00 
       ) 

     ) 

) 

문제는 첫 번째 결과 만 출력하는 배열을 반복 할 때 발생하는 것으로 보입니다. 내가 뭘 놓치고 있니?

$workday = new Workday(); 
$workday->Get($username, $duration_start, $duration_end); 

$i = 0; 
if($workday != null) 
{ 
    foreach($workday as $orders) 
    { 
     echo "ID: " . $orders[$i]->number; 
     $i++; 
    } 
} 
+0

는 치명적인 오류가 발생했습니다 : 당신이 단 하나 개의 결과를 반환하여 '가져 오기()'방법이 아닙니다 확실 배열 – devfunkd

+0

같은 유형의 워크 데이의 개체를 사용할 수 없습니다? '$ username, $ duration_start, $ duration_end'를 검색 매개 변수로 전달했기 때문에 하나의 결과 만받는 이유가 추가 될 수 있습니다. –

+1

@DaveChen 귀하의 대답은 정확합니다. 왜 삭제 했습니까? – anubhava

답변

2

당신이 무슨 일이 일어나고 있는지 말하고지고있어 오류이

foreach($workday->workday as $orders) 
    { 
     echo "ID: " . $orders->number; 
    } 
+0

빙고! 고맙습니다 ... 내 배열이 제대로 설계되지 않았거나 단지 n00b dev가 감독합니다. : P – devfunkd

+1

@DaveChen 당신의 답이 효과가있었습니다! 왜 그것을 삭제했는지 확실하지 않습니까? – devfunkd

0

당신은

if($workday != null) 
{ 
    foreach($workday['workday'] as $orders) 
    { 
     echo "ID: " . $orders->number; 
    } 
} 
0

을 시도 개체의 workday 멤버 변수를 반복 할 필요가 : 당신은 객체를 배열로 사용하려고합니다. 대신 $workday->workday (오브젝트 내부의 배열)을 반복합니다. 그냥 시도

foreach ($workday->workday as $orders) { ... } 
관련 문제