猿问

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

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


graphData持有DataArr。


[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

                      )

                )

           )

必需数组 - 传递到莫里斯.js折线图


你能告诉我如何使用PHP将它放入所需的数组中吗?我也尝试了使用JQuery Array方法array_push和其他方法,但我的所有努力都失败了,我在过去的3天里一直在研究这个问题,非常感谢任何帮助。

甚至尝试使用PHP foreach,但即使失败了,也错过了一些东西,并且没有更多关于如何让它工作的想法!如果你们中有人对此有很多想法,请告诉我。

达令说
浏览 86回答 2
2回答

梵蒂冈之花

<?php$graphData =&nbsp; &nbsp; array(&nbsp; &nbsp; &nbsp; &nbsp; 'DataArr' =>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; array&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; array(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'data' => array&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;array&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Jan 2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 60.3,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Savings'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;array&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Feb 2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 45.3,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Savings'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;array&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Mar 2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 50.6,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Savings'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; array&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'data' => array&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;array&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Jan 2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 89.62,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Discount'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;array&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Feb 2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 20.2,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Discount'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ),&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;array&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Mar 2019',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 0.0,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Discount'&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)&nbsp; &nbsp; ));$result = [];foreach($graphData['DataArr'] as $value){&nbsp; &nbsp; foreach($value['data'] as $details){&nbsp; &nbsp; &nbsp; &nbsp; if(!isset($result['data'][$details['Month']])) $result['data'][$details['Month']]&nbsp; = ['Month' => $details['Month']];&nbsp; &nbsp; &nbsp; &nbsp; $result['data'][$details['Month']][$details['Name']] = $details['Cost'];&nbsp; &nbsp; }}$result['data'] = array_values($result['data']); // to eliminate keysprint_r($result);演示:https://3v4l.org/QMVuR我们首先创建一个包含键的数组。$resultdata我们循环使用并存储 的值,并在 索引键值 下存储 。$graphDataMonthSavingsDiscountMonth最后,我们array_values()来删除密钥。

吃鸡游戏

根据您在此处提供的内容,需要生成新数组的代码:<?php$data = [&nbsp; [&nbsp; &nbsp; 'data' => [&nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Jan 2019',&nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 60.3,&nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Savings'&nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Feb 2019',&nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 45.3,&nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Savings'&nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Mar 2019',&nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 50.6,&nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Savings'&nbsp; &nbsp; &nbsp; ]&nbsp; &nbsp; ],&nbsp; ],&nbsp; [&nbsp; &nbsp; 'data' => [&nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Jan 2019',&nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 89.62,&nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Discount'&nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Feb 2019',&nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 20.2,&nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Discount'&nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; 'Month' => '10 Mar 2019',&nbsp; &nbsp; &nbsp; &nbsp; 'Cost' => 0.0,&nbsp; &nbsp; &nbsp; &nbsp; 'Name' => 'Discount'&nbsp; &nbsp; &nbsp; ]&nbsp; &nbsp; ],&nbsp; ]];$new_arr = ['data' => []];echo "<pre>";foreach( $data[0]['data'] as $key => $value) {&nbsp; // $new_arr['data'][$k]['Month'] =&nbsp;&nbsp; $new_arr['data'][$key]['Month'] =&nbsp; $value['Month'];&nbsp; $new_arr['data'][$key]['Discount'] =&nbsp; $value['Cost'];&nbsp; $new_arr['data'][$key]['Savings'] =&nbsp; $data[1]['data'][$key]['Cost'];}print_r($new_arr);注意:此代码假设数组只有 2 个主要元素,此数组中的更多元素可能会导致不同的行为。$data
随时随地看视频慕课网APP
我要回答