duanbing2963 2016-12-14 16:54
浏览 21
已采纳

如何在php中动态拆分数组

Thanks in advance, Actually I have an array with elements "BUSINESS_NAME" => FOOD AND GROCERY and "BUSINESS_NAME" => NONFOOD so I have to separate the array elements according to "FOOD AND GROCERY" and "NONFOOD" My code as below:

<?php
$arrFirst = Array
(
    "0" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => BAKERY AND CONCEPTS,
            "value" => 0.0009477694110518376
        ),

    "1" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => DAIRY AND FROZEN,
            "value" => 0.005450625689261974
        ),

    "2" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => FISH AND MEAT,
            "value" => 0.000021331155586759062
        ),

  "3" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => FOODS,
           "value" => 7.763433792429072 
        ),

    "4" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => FMCGFOODS,
            "value" => 28.280507791758872
        ),

    "5" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => FRUIT AND VEG,
            "value" => 0.00004250371522120021
        ),

    "6" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => LIQUOR AND TOBACCO,
            "value" => 0.0001807993856424188
        ),

    "7" => Array
        (
            "BUSINESS_NAME" => FOOD AND GROCERY,
            "Division_name" => STAPLES,
            "value" => 63.63833077404931
        ),

    "8" => Array
        (
            "BUSINESS_NAME" => NONFOOD,
            "Division_name" => APPARELS,
            "value" => 0.009254311711678597
        ),

    "9" => Array
        (
            "BUSINESS_NAME" => NONFOOD,
            "Division_name" => ELECTRONICS,
            "value" => 0.0009884492728213818
        ),

    "10" => Array
        (
            "BUSINESS_NAME" => NONFOOD,
            "Division_name" => GENERALMERCHANDISING,
            "value" => 0.051390163621477414
        ),

    "11" => Array
        (
            "BUSINESS_NAME" => NONFOOD,
            "Division_name" => MAX,
            "value" => 0.23221365584864856
        ),

    "12" => Array
        (
            "BUSINESS_NAME" => NONFOOD,
            "Division_name" => TEXTILES,
            "value" => 0.01723803195136225
        )

);
?>

I need the array dynamically like this:

"Bussines_Name" => array(

     "0" => array(

             "series_name" => Food and Grocery(

                 "value" => 23,
                 "value" => 34,
                 "value" => 45
                )    
        ),
     "1" => array(

           "series_name" => Non Food(

                 "value" => 33,
                 "value" => 44,
                 "value" => 55
                )    
        ),    
    );
  • 写回答

1条回答 默认 最新

  • doushuo1989 2016-12-14 17:15
    关注

    Your desired output doesn't seem a valid array. For instance, array can't hold more than one key with same name

    However, following is my guess:

    DEMO

    Array
    (
        [BUSINESS_NAME] => Array
            (
                [0] => Array
                    (
                        [series_name] => Array
                            (
                                [FOOD AND GROCERY] => Array
                                    (
                                        [0] => 0.00094776941105184
                                        [1] => 0.005450625689262
                                        [2] => 2.1331155586759E-5
                                        [3] => 7.7634337924291
                                        [4] => 28.280507791759
                                        [5] => 4.25037152212E-5
                                        [6] => 0.00018079938564242
                                        [7] => 63.638330774049
                                    )
    
                            )
    
                    )
    
                [1] => Array
                    (
                        [series_name] => Array
                            (
                                [NONFOOD] => Array
                                    (
                                        [0] => 0.0092543117116786
                                        [1] => 0.00098844927282138
                                        [2] => 0.051390163621477
                                        [3] => 0.23221365584865
                                        [4] => 0.017238031951362
                                    )
    
                            )
    
                    )
    
            )
    
    )
    

    So the PHP code would be:

    foreach ($arrFirst as $value) {
        $businesArr[$value['BUSINESS_NAME']][] = $value['value'];
    }
    
    foreach ($businesArr as $key => $value) {
        $finalArr['BUSINESS_NAME'][]['series_name'][$key] = $value;
    }
    
    print_r($finalArr);
    

    DEMO

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果