2012-02-26 45 views
1

简单的问题,但它真的让我的问题!SimpleXMLElement访问Array

我有一个var转储如下;如何访问阵列["slot_id"]并将其作为实际阵列获取?我试过$object->slot_id$object['slot_id']$object[0],但没有成功。我想我只是缺少一些东西^ _^

object(SimpleXMLElement)#17 (1) { 
    ["slot_id"]=> 
    array(143) { 
    [0]=> 
    string(2) "41" 
    [1]=> 
    string(2) "42" 
    [2]=> 
    string(2) "43" 
    .... 

回答

2

不幸的是,SimpleXML没有实现ArrayAccess迭代器。在php.net文档页面的注释中有几个代码示例说明了如何将SimpleXML对象作为数组获取,但是我发现它足够令人沮丧,以免在可能的情况下使用它。我还没有尝试过这些,所以你的里程可能会有所不同。

+0

这是一个simpleXMlElement,其中包含一个数组,肯定必须有一种方法来实现它? – 2012-02-26 23:23:31

+1

你可以遍历(因为SimpleXML确实实现了[Traversable](http://us3.php.net/manual/en/class.traversable.php))slot_id,就像它是一个数组一样,但是如果你想将它解压为一个数组,我认为你必须循环整个事情。我不明白,我知道。 'foreach($ xml-> slot_id为$ slot)echo“\ n”。$ slot;'。你也可以指向'$ xml-> slot_id [2]'(给你43)这样的索引,但是你不能在需要数组的方法中使用它,比如'implode()'。希望这可以帮助。 – Jody 2012-02-28 03:00:01