2017-05-04 111 views
0

我正在使用laravel和angular,我正在尝试添加一些图表,现在我需要在特定的结构中为图表插件获取数据,目前我的api会返回像这样的json如下:php更改对象的结构/ json

"data": { 
    "enero": { 
     "value": 50 
    }, 
    "febrero": { 
     "value": 130 
    }, 
    "marzo": { 
     "value": 220 
    }, 
    "abril": { 
     "value": 440 
    }, 
    "mayo": { 
     "value": 700 
    }, 
    "junio": null, 
    "julio": null, 
    "agosto": null, 
    "septiembre": null, 
    "octubre": null, 
    "noviembre": null, 
    "diciembre": null 
} 

预期输出:

"data": [ 
      { 
       "value": "50" 
      }, 
      { 
       "value": "130" 
      }, 
      { 
       "value": "220" 
      }, 
      { 
       "value": "440" 
      }, 
      { 
       "value": "700" 
      }, 
      { 
       "value": null 
      }, 
      { 
       "value": null 
      }, 
      { 
       "value": null 
      }, 
      { 
       "value": null 
      }, 
      { 
       "value": null 
      }, 
      { 
       "value": null 
      }, 
      { 
       "value": null 
      } 
     ] 
+0

你有没有尝试过的东西,直到没有? –

+0

显示代码,生成该json – splash58

+0

好吧,那么......你的问题是什么? [**我怎么问一个好问题?**](https://stackoverflow.com/help/how-to-ask) – sidyll

回答

0

这里我们使用array_map收集所需的输出中。

Try this code snippet here

<?php 

$string='{"data": { 
    "enero": { 
     "value": 50 
    }, 
    "febrero": { 
     "value": 130 
    }, 
    "marzo": { 
     "value": 220 
    }, 
    "abril": { 
     "value": 440 
    }, 
    "mayo": { 
     "value": 700 
    }, 
    "junio": null, 
    "julio": null, 
    "agosto": null, 
    "septiembre": null, 
    "octubre": null, 
    "noviembre": null, 
    "diciembre": null 
} 
}'; 
$result=array_map(function($value){ 
    return is_array($value) ? array("value"=>$value["value"]) : array("value"=>$value); 
}, json_decode($string,true)["data"]); 
$newResult["data"]=array_values($result); 
echo json_encode($newResult,JSON_PRETTY_PRINT); 

输出:

{ 
    "data": [ 
     { 
      "value": 50 
     }, 
     { 
      "value": 130 
     }, 
     { 
      "value": 220 
     }, 
     { 
      "value": 440 
     }, 
     { 
      "value": 700 
     }, 
     { 
      "value": null 
     }, 
     { 
      "value": null 
     }, 
     { 
      "value": null 
     }, 
     { 
      "value": null 
     }, 
     { 
      "value": null 
     }, 
     { 
      "value": null 
     }, 
     { 
      "value": null 
     } 
    ] 
} 
+0

谢谢你,这对我很有用 –

+0

@RubenMoralesFelix welcome .. :) –

0
$data = []; // new array 
foreach($oldArray['data'] as $key => $value){ 
    $data['data'][]['value'] = $value['value']; 
}