まずコードを使用して問題を再現します
一見すると、結果は非常にわかりにくいです:
コードをコピーします コードは次のとおりです:
$string = << ;
$data = simplexml_load_string($string);
; 一見すると、結果はわかりにくいです。 COPYコードcodeコードは次のとおりです。SimplexMLelementオブジェクト
(
[foo] =&gt; array
(
) [1] => ; SimpleXMLElement オブジェクト ( [bar] => ワールド )
))
SimpleXMLElement オブジェクト
(
[bar] => こんにちは
)
明らかに print_rフーを示していますは 2 つの bar 要素を持つ配列ですが、最終的には 1 つの bar 要素だけが表示されます。
その理由は実際には非常に簡単です。上記の simplexml_load_string の結果では、foo は配列ではなく、反復可能なオブジェクトです。
次のように確認できます:
コードをコピーします
コードは次のとおりです:
foreach ($data->foo as $v) print_r($v); ;children() as $ v) print_r($v);