2014-03-25 67 views
-4

JSON格式我有這樣更改陣列值在PHP

Array 
      (
       [0] => [{"qty":"4023","discount":"-288.84000194072723"}] 
       [1] => [{"qty":"48","discount":"-1"}] 
       [2] => [{"qty":"305","discount":"0"}] 
      ) 

數組如何將這些數組轉換爲我的格式一樣

[{"name":"qty","data":[4023,48,305]},{"name":"discount","data":[-288.84,-1,0]}] 

如何解決這個問題呢?

+2

你知道http://www.php.net/manual/en/function.json-encode.php? – HerrSerker

+0

想讓我們爲你google? – TigOldBitties

+0

我爲您發佈了我的解決方案問題,它不工作? – vikingmaster

回答

1

這裏是完整的解決方案(使用json_encodejson_decode):

$array = array(
    '[{"qty":"4023","discount":"-288.84000194072723"}]', 
    '[{"qty":"48","discount":"-1"}]', 
    '[{"qty":"305","discount":"0"}]' 
); 

$new = array(
    (object) array("name" => "qty", "data" => array()), 
    (object) array("name" => "discount", "data" => array()) 
); 

foreach($array as $key => $value){ 
    $object = json_decode($value)[0]; 

    $new[0]->data[] = $object->qty ; 
    $new[1]->data[] = $object->discount ; 
} 


$desired_result = json_encode($new); 
var_dump($desired_result); 

沙盒用於測試:Here

1

看看在json_encode功能。從PHP.net

實施例:

<?php 
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 

echo json_encode($arr); 
?> 

輸出:

{"a":1,"b":2,"c":3,"d":4,"e":5}