2013-02-23 74 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是私有的,你應該:

  • 把它公開
  • 創建一個簡單的getter public function getXY() { return $this->xy; }

然後:

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

它似乎循環嗯根本不所有我把e 「測試」;在第一個foreach範圍內,它不顯示.. – Sir 2013-02-23 02:41:06

+0

@Dave什麼是$ myObj?它是'coOrds'的一個實例嗎?你顯示的結構是'$ myObj'的'var_dump'? – Tchoupi 2013-02-23 02:48:51

+0

'$ myObj' with'print_r($ myObj);'是你在問題中看到的:) – Sir 2013-02-23 02:49:52