PHP从数组中的数组形成自定义数组
我有一个三个月的数组,其中包含三个月的数据,它包含储蓄和折扣信息如下所示: graphData保存数据arr [DataArr]=>阵列PHP从数组中的数组形成自定义数组,php,morris.js,Php,Morris.js,我有一个三个月的数组,其中包含三个月的数据,它包含储蓄和折扣信息如下所示: graphData保存数据arr [DataArr]=>阵列 [0] => Array ( [data] => Array ( [0] => Array ( [Month] =&g
[0] => Array
(
[data] => Array
(
[0] => Array
(
[Month] => 10 Jan 2019
[Cost] => 60.3
[Name] => Savings
)
[1] => Array
(
[Month] => 10 Feb 2019
[Cost] => 45.3
[Name] => Savings
)
[2] => Array
(
[Month] => 10 Mar 2019
[Cost] => 50.6
[Name] => Savings
)
)
)
[1] => Array
(
[data] => Array
(
[0] => Array
(
[Month] => 10 Jan 2019
[Cost] => 89.62
[Name] => Discount
)
[1] => Array
(
[Month] => 10 Feb 2019
[Cost] => 20.2
[Name] => Discount
)
[2] => Array
(
[Month] => 10 Mar 2019
[Cost] => 0.0
[Name] => Discount
)
)
)
所需数组-进入Morris.js折线图
现在我想迭代到这个数组中,并希望以如下方式获得数组格式
[data] => Array
(
[0] => Array
(
[Month] => 10 Jan 2019
[Savings] => 60.3
[Discount] => 89.62
)
[1] => Array
(
[Month] => 10 Feb 2019
[Saving] => 45.3
[Discount] => 20.2
)
[2] => Array
(
[Month] => 10 Mar 2019
[Saving] => 50.6
[Discount] => 0.0
)
)
你能和我分享一下我如何使用PHP将其放入所需的数组中吗?我用JQuery数组方法尝试了array_push和其他方法,但我的所有努力都失败了,我在过去3天里一直在努力,非常感谢您的帮助
甚至尝试使用PHPforeach,但即使失败了,也遗漏了一些东西,对如何使其工作没有更多的想法!如果你们有什么想法,请告诉我
谢谢
编辑
**我在PHP中尝试的示例代码**
for($k = 0; $k < sizeof($graphData['DataArr']); $k++ ) {
for($l = 0; $l < sizeof($graphData['DataArr'][$k]); $l++ ) {
array_push($graphData['DataArr'], array(
'label' => $graphData['DataArr'][$k][$l]['label'],
'percent' => $graphData['DataArr'][$k][$l]['percentage']
)
);
}
}
for($k=0;$k$graphData['DataArr'][$k][$l]['label'],
“百分比”=>$graphData['DataArr'][$k][$l]['percentage']
)
);
}
}
此处label=>成本、折扣和百分比是与标签关联的值。
根据您在此处提供的内容,是生成新阵列所需的代码:
<?php
$graphData =
array(
'DataArr' =>
array
(
array(
'data' => array
(
array
(
'Month' => '10 Jan 2019',
'Cost' => 60.3,
'Name' => 'Savings'
),
array
(
'Month' => '10 Feb 2019',
'Cost' => 45.3,
'Name' => 'Savings'
),
array
(
'Month' => '10 Mar 2019',
'Cost' => 50.6,
'Name' => 'Savings'
)
)
),
array
(
'data' => array
(
array
(
'Month' => '10 Jan 2019',
'Cost' => 89.62,
'Name' => 'Discount'
),
array
(
'Month' => '10 Feb 2019',
'Cost' => 20.2,
'Name' => 'Discount'
),
array
(
'Month' => '10 Mar 2019',
'Cost' => 0.0,
'Name' => 'Discount'
)
)
)
)
);
$result = [];
foreach($graphData['DataArr'] as $value){
foreach($value['data'] as $details){
if(!isset($result['data'][$details['Month']])) $result['data'][$details['Month']] = ['Month' => $details['Month']];
$result['data'][$details['Month']][$details['Name']] = $details['Cost'];
}
}
$result['data'] = array_values($result['data']); // to eliminate keys
print_r($result);
<?php
$data = [
[
'data' => [
[
'Month' => '10 Jan 2019',
'Cost' => 60.3,
'Name' => 'Savings'
],
[
'Month' => '10 Feb 2019',
'Cost' => 45.3,
'Name' => 'Savings'
],
[
'Month' => '10 Mar 2019',
'Cost' => 50.6,
'Name' => 'Savings'
]
],
],
[
'data' => [
[
'Month' => '10 Jan 2019',
'Cost' => 89.62,
'Name' => 'Discount'
],
[
'Month' => '10 Feb 2019',
'Cost' => 20.2,
'Name' => 'Discount'
],
[
'Month' => '10 Mar 2019',
'Cost' => 0.0,
'Name' => 'Discount'
]
],
]
];
$new_arr = ['data' => []];
echo "<pre>";
foreach( $data[0]['data'] as $key => $value) {
// $new_arr['data'][$k]['Month'] =
$new_arr['data'][$key]['Month'] = $value['Month'];
$new_arr['data'][$key]['Discount'] = $value['Cost'];
$new_arr['data'][$key]['Savings'] = $data[1]['data'][$key]['Cost'];
}
print_r($new_arr);
您尝试了什么,请发布代码,以便人们可以帮助解决此问题。嗨,Mamoun,在问题中添加了示例代码,感谢您的回复:)将很快检查@RaviChandra你能导出你的数组并显示而不是打印()吗?谢谢大家会看到的:)@RaviChandra我希望我的初始输入数据格式正确(因此我在评论中要求使用var_导出()。