2013-02-23 32 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