PHP从数组中的数组形成自定义数组

PHP从数组中的数组形成自定义数组,php,morris.js,Php,Morris.js,我有一个三个月的数组,其中包含三个月的数据,它包含储蓄和折扣信息如下所示: graphData保存数据arr [DataArr]=>阵列 [0] => Array ( [data] => Array ( [0] => Array ( [Month] =&g

我有一个三个月的数组,其中包含三个月的数据,它包含储蓄和折扣信息如下所示:

graphData保存数据arr

[DataArr]=>阵列

    [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_导出()。