2013-02-23 2 views
0

2 차원 배열을 보유하고 있지만 출력이 작동하지 않는 개체가 있습니다.내 개체의 값을 반복하십시오.

나는 다음과 같은 데이터를 보면 :

foreach($myObj as $key){ 
    foreach($myObj[$key] as $key2){ 
     echo '['.$key.','.$key2.'], '; 
    } 
} 

하지만 난 더 출력을 그냥 빈 페이지를 얻을 수 없습니다. 또한 오류 로그에 오류가 없습니다.

내 객체는 다음과 같이 구성되어있다 :

coOrds Object 
(
    [xy:coOrds:private] => Array 
     (
      [10] => Array //value 10 would be $key 
       (
        [10] => //10 here would be $key2 
        [11] => 
        [12] => 
       ) 

      [11] => Array 
       (
        [10] => 
        [11] => 
        [12] => 
       ) 

     ) 
} 

내가 내 루프 잘못 뭐하는 거지?

답변

1

이 작동합니다 :

foreach($myObj as $key => $array){ 
    foreach($array as $key2 => $array2){ 
     echo '['.$key.','.$key2.'], '; 
    } 
} 

편집 xy이 비공개

때문에, 당신이 중 하나를 수행해야합니다

  • 는 공공
  • 간단한 게터를 만들 수 있도록 public function getXY() { return $this->xy; }
  • 그리고 0

:

foreach($myObj->getXY() as $key => $array){ 
    foreach($array as $key2 => $array2){ 
     echo '['.$key.','.$key2.'], '; 
    } 
} 

편집 2

실제로 동작하는 샘플 :

class coOrds { 
    public $xy = array(10 => array(1, 2, 3), 11 => array(4,5,6)); 
} 

$myObj = new coOrds(); 

foreach($myObj->xy as $key => $array){ 
    foreach($array as $key2 => $array2){ 
     echo '['.$key.','.$key2.'], '; 
    } 
} 

출력 :

[10,0], [10,1], [10,2], [11,0], [11,1], [11,2], 
+0

흠이에서 루프를하지 않는 것 모두 내가 전자를 넣어. cho 'test'; 첫 번째 foreach 범위에서 그리고 그것은 표시되지 않습니다 .. – Sir

+0

@Dave'$ myObj'는 무엇입니까? 그것은'coOrds'의 인스턴스입니까? 보여준 구조체는'$ myObj'의'var_dump'입니까? – Tchoupi

+0

'print_r ($ myObj);와 함께'$ myObj'가 질문에서 보이는 것입니다 :) – Sir

관련 문제