访问多维数组错误

时间:2014-05-21 15:40:27

标签: php arrays xml multidimensional-array

对于使用SimpleXMLElement创建的XML对象转换的数组,我有一个非常奇怪的问题。以2种方式访问​​相同的项目给了我两个不同的结果。

例如: $ xmlObj [ 'COMMANDE'] [ '法分'] 这给了我一个包含3个项目数组的数组:

array(1) {
  ["ligne"]=>
  array(3) {
    [0]=>
    array(8) {
      ["designation"]=>
      string(3) "Don"
    }
    [1]=>
    array(8) {
      ["designation"]=>
      string(15) "Cotisation 2013"
    }
    [2]=>
    array(8) {
      ["designation"]=>
      string(15) "Cotisation 2012"
    }
  }
}

如果我打印计数($ orders ['ligne']),它给我3是正确的。

但是如果我使用$ xmlObj ['commande'] ['lignes'] ['ligne']它会直接给我 数组ligne的第一项,好像我写了$ xmlObj ['commande'] ['lignes'] ['ligne'] [0]

array(8) {
  ["designation"]=>
  string(3) "Don"
}

编辑22h02:我发现'问题',当xml列表中有一个项目SimpleXML get_object_vars或其Zend等效_processXml将其转换为对象时,否则将其转换为数组。

1 个答案:

答案 0 :(得分:0)

您使用实现Traversable / Iterator接口的SimpleXMLElement对象。使用get_object_vars()转换为普通数组以使用您编写的。