2013-12-16 14 views
1

這是我第一次使用array_unique,我不確定我是否做錯了什麼。array_unique無法使用xml?

我有以下代碼:

array_unique($items); 
print_r($items); 
foreach ($items as $item) { 
echo "$item <br />"; 
} 

的print_r正在返回: 陣列([0] => SimpleXMLElement對象([0] =>地拉那)[1] => SimpleXMLElement對象([0] =>地拉那)[2] => SimpleXMLElement對象([0] =>地拉那))

回波在環路返回:地拉那地拉那

回答

1

爲SimpleXMLElement類表示:__toString()返回文本的內容是直接在這個元素中。不返回此元素的子元素內的文本內容。

從print_r輸出中,它看起來像文本是對象的子對象。如果文本不是孩子,它看起來array_unique實際上將工作。

array_unique: 當且僅當(string)$ elem1 ===(string)$ elem2時,兩個元素被認爲是相等的。用詞表示:當字符串表示是相同的。如果像文檔所說的那樣,SimpleXMLElement的文本不是對象的子項,這應該起作用。

+0

有什麼我可以做的,使其工作? – Esteban89

+0

嘗試使用SimpleXMLElement類的子函數首先提取值。如果你可以將值提取到一個數組中,那麼你可以在該數組上使用array_unique http://www.php.net/manual/en/simplexmlelement.children.php – user602525