3 回答
TA贡献1871条经验 获得超8个赞
使用 array_reduce 可以解决您的问题。
$data = '{"data": [{
"seq": "1",
"created_month": "Aug",
"descr": "[YOU] - Not Recieved",
"paydescr": "Revenue",
"amount": "205.85"
}, {
"seq": "1",
"created_month": "Jul",
"descr": "[YOU] - Not Recieved",
"paydescr": "Revenue",
"amount": "176.82"
}, {
"seq": "2",
"created_month": "Aug",
"descr": "[OT] - Not Recieved",
"paydescr": "Commission",
"amount": "74.19"
}, {
"seq": "2",
"created_month": "Jul",
"descr": "[OT] - Not Recieved",
"paydescr": "Commission",
"amount": "63.71"
}]}';
$data = json_decode($data, true);
$group = array_reduce($data['data'], function ($old, $new) {
$key = "{$new['created_month']}_{$new['seq']}";
unset($new['created_month'], $new['seq']);
$old[$key][] = $new;
return $old;
}, []);
print '<pre>';
print_r($group); // Ass array
print_r(json_encode($group)); // As JSON
TA贡献1793条经验 获得超6个赞
使用这个 php 代码:
$data = '{"data": [{
"seq": "1",
"created_month": "Aug",
"descr": "[YOU] - Not Recieved",
"paydescr": "Revenue",
"amount": "205.85"
}, {
"seq": "1",
"created_month": "Jul",
"descr": "[YOU] - Not Recieved",
"paydescr": "Revenue",
"amount": "176.82"
}, {
"seq": "2",
"created_month": "Aug",
"descr": "[OT] - Not Recieved",
"paydescr": "Commission",
"amount": "74.19"
}, {
"seq": "2",
"created_month": "Jul",
"descr": "[OT] - Not Recieved",
"paydescr": "Commission",
"amount": "63.71"
}]}';
$data = json_decode($data, true);
$newArr = array();
foreach($data['data'] as $k=>$v){
$newArr[$v['created_month']][$v['seq']][] = array("descr"=>$v['descr'],"paydescr"=>$v['paydescr'],"amount"=>$v['amount']);
}
echo json_encode($newArr);
- 3 回答
- 0 关注
- 179 浏览
添加回答
举报