2015-02-24 136 views
0

我想解析XML文件中的所有貨幣值。我想從XML文件:將xml數據轉換爲數組

Array 
(
    [USD] => 1.0501 
    [RUB] => 0.0165 
    [TRY] => 0.4244 
) 

這個數組,但我得到這個:

Array 
(
    [USD] => SimpleXMLElement Object 
     (
      [0] => 1.0501 
     ) 

    [RUB] => SimpleXMLElement Object 
     (
      [0] => 0.0165 
     ) 

    [TRY] => SimpleXMLElement Object 
     (
      [0] => 0.4244 
     ) 

) 

這是我的PHP代碼:

<?php 
@header('Content-Type: text/html; charset=utf-8;'); 
$date = date ("d.m.Y"); 
$cur_arr = array("TRY", "RUB", "USD"); 
$url = simplexml_load_file("http://cbar.az/currencies/" .$date.".xml"); 

foreach($url->ValType[1]->Valute as $key=>$value){ 
    $attr = $value->attributes(); 

    if(in_array($attr["Code"],$cur_arr)){ 
     $data[''.$attr["Code"].''] = $value->Value[0]; 
    } 

} 
print_r($data); 
?> 

我想獲得一個數組像第一個例子。我嘗試了很多代碼,但我的結果中有SimpleXMLElement對象。我如何能像第一個例子那樣得到它?

+0

沒有奏效:(。 – 2015-02-24 20:51:58

回答

0

值之前添加(array)作爲

foreach($url->ValType[1]->Valute as $key=>$value){ 
    $attr = $value->attributes(); 

    if(in_array($attr["Code"],$cur_arr)){ 
     $value = (array)$value->Value; 
     $data[''.$attr["Code"].''] = $value[0]; 
    } 

} 

這將返回

array(3) { 
    ["USD"]=> 
    string(6) "1.0501" 
    ["RUB"]=> 
    string(6) "0.0165" 
    ["TRY"]=> 
    string(6) "0.4244" 
} 
+0

是否加工 ' 陣列 ( [USD] =>數組 ( [ 0] => 1.0501 ) [RUB] =>陣列 ( [0] => 0.0165 ) [TRY] =>陣列 ( [0] => 0.4244 ) ) ' – 2015-02-24 20:56:17

+0

修改我的答案檢查,請 – 2015-02-24 20:58:04

+0

,你需要什麼?讓我知道? – 2015-02-24 21:01:30