ループしたいオブジェクトの配列を含むオブジェクトがあります。オブジェクトの print_r は次のようになります。
SimpleXMLElement Object
(
[NewDataSet] => SimpleXMLElement Object
(
[Table1] => Array
(
[0] => SimpleXMLElement Object
(
[DiamondID] => 44696069
[ShapeTitle] => Pear
[Weight] => 0.300
[ColorTitle] => G
)
[1] => SimpleXMLElement Object
(
[DiamondID] => 44775332
[ShapeTitle] => Pear
[Weight] => 0.300
[ColorTitle] => G
)
[2] => SimpleXMLElement Object
(
[DiamondID] => 46959935
[ShapeTitle] => Pear
[Weight] => 0.340
[ColorTitle] => D
)
)
)
)
オブジェクトは、SOAP 呼び出しを介して取得している XML からのものです。
「Table1」配列をループして、各オブジェクトにアクセスしたいと思います。私はこれを次の方法で行っています:
foreach($rapnetresult->NewDataSet->Table1 as $itemno=>$diamond) {
echo "<p>Item #$itemno<br>";
echo "DiamondID: " . $diamond->DiamondID . "<br>";
echo "ShapeTitle: " . $diamond->ShapeTitle. "<br>";
echo "Weight: " . $diamond->Weight"</p>";
}
これにより、次の出力が生成されます。
Item #Table1
DiamondID: 44696069
ShapeTitle: Pear
Weight: 0.300
Item #Table1
DiamondID: 44775332
ShapeTitle: Pear
Weight: 0.300
Item #Table1
DiamondID: 46959935
ShapeTitle: Pear
Weight: 0.340
これは、各オブジェクトにアクセスできる場所です。しかし、$itemno 変数の値が常に "Table1" である理由がわかりません。私はそれが Table1 配列キー、つまり 0、1、2 などであると予想していました。
期待されるキーを取得できない理由を誰か説明してもらえますか? そして、鍵を手に入れるために私は何をしなければなりませんか?