2012-02-23 48 views
0
<?php 
$xml = simplexml_load_file("test.XML"); 
$amount = array(); 
$temp = 0; 

echo $xml->getName() . "</br>"; 

foreach ($xml->RECORD as $first_gen) { 
    foreach ($first_gen->Inventory_Value_at_Cost as $second_gen){ 
     $temp = $second_gen; 
     $amount[] = $temp; 
    } 
} 
echo json_encode($amount, JSON_FORCE_OBJECT); 
?> 

輸出PHP:減少JSON格式

{ 「0」 數組維度:{ 「0」: 「34954.68」}, 「1」:{ 「0」: 「20544.20」} , 「2」:{ 「0」: 「102702.76」}, 「3」:{ 「0」: 「89018.95」} 「4」:{ 「0」: 「42479.36」}, 「5」:{「0 「:」 58479.60 「},」 6 「:{」 0 「:」 47609.10 「},」 7 「:{」 0 「:」 188230.86 「},」 8 「:{」 0 「:」 80646.05 「},」 9 「:{」 0 「:」 11352.48 「},」 10 「:{」 0 「:」 4461.90" }}

誰能幫我把這個下來像這樣

{34954.68,20544.20,102702.76 ... 4461.90}

非常感謝。

+0

取代'$量[] = $溫度;''爲$量[] = floatval($溫度[1]);' – Kuba 2012-02-23 10:38:12

+0

@KubaW非常感謝!!!這就像一個魅力! – 2012-02-23 10:56:12

+0

你在$ xml-> RECORD中得到的是什麼,給出輸出然後它是解析數據形成JSON,像這樣(ex)echo json_encode(array(「name」=>「demo」,「time」= > 「晚上8點」)); – 2012-02-23 10:57:30

回答

2

首先,如果您嘗試獲取簡單數組,請不要使用JSON_FORCE_OBJECT。嘗試是這樣的:

... 
$temp = $second_gen; 
$amount[] = $temp; 
... 

有:不是指定其返回在$ second_gen將以下代碼整個陣列的

$xml = simplexml_load_file("test.XML"); 
$amount = array(); 
$temp = 0; 

echo $xml->getName() . "</br>"; 

foreach ($xml->RECORD as $first_gen) { 
    foreach ($first_gen->Inventory_Value_at_Cost as $second_gen){ 
     $temp = $second_gen; 
     $amount[] = array_values($temp); 
    } 
} 
echo json_encode($amount); 
0

... 
$amount[] = $second_gen[0]; 
... 
+0

它能夠刪除它,但... ... {{0「:」34954.68「},{」0「:」20544.20「},{」0「:」102702.76 「},{」 0 「:」 89018.95 「},{」 0 「:」 42479.36 「},{」 0 「:」 58479.60 「},{」 0 「:」 47609.10 「},{」 0 「:」 188230.86 「},{」0「:」80646.05「},{」0「:」11352.48「},{」0「:」4461.90「}] ...我怎樣才能進一步刪除最後的」0「? – 2012-02-23 10:49:42

+0

正如羅布所說,刪除json_encode中的JSON_FORCE_OBJECT,那麼你應該沒問題。 – 2012-02-23 10:54:52

0

羅布是正確的,起飛JSON_FORCE_OBJECT

嘗試:

$amount[] = $second_gen[0] 

echo json_encode($amount);