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] => 
                )

        )
}

ループに対して何が間違っていますか?

4

1 に答える 1

1

これは機能するはずです:

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

編集

はプライベートなのでxy、次のいずれかを行う必要があります。

  • 公開する
  • 簡単なゲッターを作成する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], 
于 2013-02-23T02:39:15.373 に答える