0

我有一个返回关联数组的 xml 解析器。这是结构:

<addresses id="123">
  <anonymous-address> <test>data 1 </test>
  </anonymous-address>
</addresses>

print_r($this->params) will return 
Array
(
    [addresses] => Array
        (
            [id] => 123
            [anonymous-address] => Array
                (
                    [0] => Array
                        (                                
                            [test] => Array
                                (
                                    [VALUE] => data 1
                                )))))

然后这个数组通过 list() 传递为:

list($root, $data) = $parsedXML;

然后我尝试从 root 获取一个 id 属性并以这种方式读取:

$id = $data[$root]['id'];

编辑:这适用于除 400 的一个 $root 值之外的所有值。这种开关 ($root) 的情况与其他情况具有相同的代码,所以我不知道为什么它只在那里出错。

var_dump($root, $data) 输出

string (9)  "addresses"
array(1)  {
    ["addresses"]=>
    array(2)  {
        ["id"]=>
        string(3)  "123"
        ["anonymous-address"]=>
        array(1)  {
            ["VALUE"]=>
            string(7)  "data 1 "
        }
    }
}
4

1 回答 1

0
$a = list($root, $data);

现在 $a 将是:

array(0 => $root, 1 => $data);

所以你可以像这样得到它们:

$a[0], $a[1]

所以可能

$id = $a[1][$a[0]]['id'];
于 2012-06-07T18:36:44.407 回答