du4822 2016-07-04 07:51
浏览 7
已采纳

PHP在同一级别上组合数组

So, I am sending data from View to Controller and need to save all (multiple) data in DB.

in view I am using category[], status_number[] and name[] to collect data, then I got this:

[
    'category' => [
        (int) 0 => 'c',
        (int) 1 => 'c1',
        (int) 2 => 'c2'
    ],
    'status_number' => [
        (int) 0 => 'sn',
        (int) 1 => 'sn1',
        (int) 2 => 'sn2'
    ],
    'name' => [
        (int) 0 => 'n',
        (int) 1 => 'n1',
        (int) 2 => 'n2'
    ]
]

now I need to transform (combine) this array so that I can store it to DB in this structure

[
    '(int) 0' => [
        category => 'c',
        status_number => 'sn',
        name => 'n'
    ],
   '(int) 1' => [
        category => 'c1',
        status_number => 'sn1',
        name => 'n1'
    ],
   '(int) 2' => [
        category => 'c2',
        status_number => 'sn2',
        name => 'n2'
    ]
]
  • 写回答

1条回答 默认 最新

  • douge7771 2016-07-04 11:40
    关注

    You can try something like that:

    <?php
    
    $array = [
        'category' => [
            'c',
            'c1',
            'c2'
        ],
        'status_number' => [
            'sn',
            'sn1',
            'sn2'
        ],
        'name' => [
            'n',
            'n1',
            'n2'
        ]
    ];
    
    $result = [];
    
    array_walk($array, function($data, $key) use (&$result){
    
        foreach($data as $numericKey => $value) {
            $result[$numericKey][$key] = $value;
        }
    
    });
    
    print_r($result);
    

    As the result it gives:

    Array
    (
        [0] => Array
            (
                [category] => c
                [status_number] => sn
                [name] => n
            )
    
        [1] => Array
            (
                [category] => c1
                [status_number] => sn1
                [name] => n1
            )
    
        [2] => Array
            (
                [category] => c2
                [status_number] => sn2
                [name] => n2
            )
    
    )
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?