2012-02-26 81 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