2015-01-08 79 views
1

爲什麼在嘗試構建數組時出現Illegal offset type錯誤?PHP:從xml生成數組時非法偏移類型

function tassi_parser() { 
    $xml=simplexml_load_file('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'); 
    foreach($xml->Cube->Cube->Cube as $tmp) { 
     $results[$tmp['currency']] = $tmp['rate']; 
    }; 
    return $results; 
}; 

$tmp['currency']正確包含應作爲重點,所以我無法理解有什麼問題的字符串...

回答

1

simplexml_load_file返回SimpleXMLElement,每個xml元素都將是一個對象。因此,在的foreach你的$ TMP的類型是「對象」(不是字符串),所以你需要將它轉換爲字符串,如下所示:

(string)$tmp['currency'] 

您可以使用的GetType函數來檢索的東西類型: http://php.net/manual/en/function.gettype.php

+0

謝謝...我知道這是愚蠢的東西-.- – Mariano

+0

@Mariano什麼?認真?我在這個答案前15分鐘寫了這封信! – Rizier123

1

你必須將它轉換爲字符串,像這樣:

$results[(string)$tmp['currency']] = (string)$tmp['rate']; 

還有;這個foreach和函數的結尾沒有必要!