2012-02-23 35 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);