为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
达令说 2022-09-03 15:55:59
我有一个三个月的数组,其中有三个月的数据,它保存储蓄和折扣信息,如下所示: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,但即使失败了,也错过了一些东西,并且没有更多关于如何让它工作的想法!如果你们中有人对此有很多想法,请告诉我。
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

<?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);

演示:https://3v4l.org/QMVuR

  • 我们首先创建一个包含键的数组。$resultdata

  • 我们循环使用并存储 的值,并在 索引键值 下存储 。$graphDataMonthSavingsDiscountMonth

  • 最后,我们array_values()来删除密钥。


查看完整回答
反对 回复 2022-09-03
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

根据您在此处提供的内容,需要生成新数组的代码:


<?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);

注意:此代码假设数组只有 2 个主要元素,此数组中的更多元素可能会导致不同的行为。$data


查看完整回答
反对 回复 2022-09-03
  • 2 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号