dongping1922 2013-10-31 04:28
浏览 63
已采纳

将两个数组合并或合并为单个数组

I have a case to create or merge two arrray into single array.

First array like this :

Array // First Array
(
    [0] => Array
        (
            [hotel] => cempaka
            [vendor] => mas
        )

    [1] => Array
        (
            [hotel] => permata
            [vendor] => sip
        )
)

Second array :

Array
(
    [0] => Array
    (
        [order_type] => 1
        [currency] => 26
        [net] => 26000
        [rate] => 26000
        [amount] => 26000
        [bank_surcharge] => 26000
        [ticket] => 26000
        [profit] => 26000
        [selling_price] => 26000
        [description] => a
    )

[1] => Array
    (
        [order_type] => 2
        [currency] => 27
        [net] => 27000
        [rate] => 27000
        [amount] => 27000
        [bank_surcharge] => 27000
        [ticket] => 27000
        [profit] => 27000
        [selling_price] => 27000
        [description] => b
    )

[2] => Array
    (
        [order_type] => 5
        [currency] => 28
        [net] => 28000
        [rate] => 28000
        [amount] => 28000
        [bank_surcharge] => 28000
        [ticket] => 28000
        [profit] => 28000
        [selling_price] => 28000
        [description] => c
    )

[3] => Array
    (
        [order_type] => 3
        [currency] => 29
        [net] => 29000
        [rate] => 29000
        [amount] => 29000
        [bank_surcharge] => 29000
        [ticket] => 29000
        [profit] => 29000
        [selling_price] => 29000
        [description] => d
    )

[4] => Array
    (
        [order_type] => 4
        [currency] => 30
        [net] => 30000
        [rate] => 30000
        [amount] => 30000
        [bank_surcharge] => 30000
        [ticket] => 30000
        [profit] => 30000
        [selling_price] => 30000
        [description] => e
    )

[5] => Array
    (
        [order_type] => 6
        [currency] => 31
        [net] => 31000
        [rate] => 31000
        [amount] => 31000
        [bank_surcharge] => 31000
        [ticket] => 31000
        [profit] => 31000
        [selling_price] => 31000
        [description] => f
    )

[6] => Array
    (
        [order_type] => 1
        [currency] => 32
        [net] => 32000
        [rate] => 32000
        [amount] => 32000
        [bank_surcharge] => 32000
        [ticket] => 32000
        [profit] => 32000
        [selling_price] => 32000
        [description] => g
    )

[7] => Array
    (
        [order_type] => 2
        [currency] => 33
        [net] => 33000
        [rate] => 33000
        [amount] => 33000
        [bank_surcharge] => 33000
        [ticket] => 33000
        [profit] => 33000
        [selling_price] => 33000
        [description] => h
    )

[8] => Array
    (
        [order_type] => 5
        [currency] => 34
        [net] => 34000
        [rate] => 34000
        [amount] => 34000
        [bank_surcharge] => 34000
        [ticket] => 34000
        [profit] => 34000
        [selling_price] => 34000
        [description] => i
    )

[9] => Array
    (
        [order_type] => 3
        [currency] => 35
        [net] => 35000
        [rate] => 35000
        [amount] => 35000
        [bank_surcharge] => 35000
        [ticket] => 35000
        [profit] => 35000
        [selling_price] => 35000
        [description] => j
    )

[10] => Array
    (
        [order_type] => 4
        [currency] => 36
        [net] => 36000
        [rate] => 36000
        [amount] => 36000
        [bank_surcharge] => 36000
        [ticket] => 36000
        [profit] => 36000
        [selling_price] => 36000
        [description] => k
    )

[11] => Array
    (
        [order_type] => 6
        [currency] => 37
        [net] => 37000
        [rate] => 37000
        [amount] => 37000
        [bank_surcharge] => 37000
        [ticket] => 37000
        [profit] => 37000
        [selling_price] => 37000
        [description] => l
    )
)

and then this the output that i want to get:

Array
(
[0] => Array
    (
        [hotel] => cempaka
        [vendor] => mas
        [order_type] => 1
        [currency] => 26
        [net] => 26000
        [rate] => 26000
        [amount] => 26000
        [bank_surcharge] => 26000
        [ticket] => 26000
        [profit] => 26000
        [selling_price] => 26000
        [description] => a
    )

[1] => Array
    (
        [hotel] => cempaka
        [vendor] => mas
        [order_type] => 2
        [currency] => 27
        [net] => 27000
        [rate] => 27000
        [amount] => 27000
        [bank_surcharge] => 27000
        [ticket] => 27000
        [profit] => 27000
        [selling_price] => 27000
        [description] => b
    )

[2] => Array
    (
        [hotel] => cempaka
        [vendor] => mas
        [order_type] => 5
        [currency] => 28
        [net] => 28000
        [rate] => 28000
        [amount] => 28000
        [bank_surcharge] => 28000
        [ticket] => 28000
        [profit] => 28000
        [selling_price] => 28000
        [description] => c
    )

[3] => Array
    (
        [hotel] => cempaka
        [vendor] => mas
        [order_type] => 3
        [currency] => 29
        [net] => 29000
        [rate] => 29000
        [amount] => 29000
        [bank_surcharge] => 29000
        [ticket] => 29000
        [profit] => 29000
        [selling_price] => 29000
        [description] => d
    )

[4] => Array
    (
        [hotel] => cempaka
        [vendor] => mas
        [order_type] => 4
        [currency] => 30
        [net] => 30000
        [rate] => 30000
        [amount] => 30000
        [bank_surcharge] => 30000
        [ticket] => 30000
        [profit] => 30000
        [selling_price] => 30000
        [description] => e
    )

[5] => Array
    (
        [hotel] => cempaka
        [vendor] => mas
        [order_type] => 6
        [currency] => 31
        [net] => 31000
        [rate] => 31000
        [amount] => 31000
        [bank_surcharge] => 31000
        [ticket] => 31000
        [profit] => 31000
        [selling_price] => 31000
        [description] => f
    )

[6] => Array
    (
        [hotel] => permata
        [vendor] => sip
        [order_type] => 1
        [currency] => 32
        [net] => 32000
        [rate] => 32000
        [amount] => 32000
        [bank_surcharge] => 32000
        [ticket] => 32000
        [profit] => 32000
        [selling_price] => 32000
        [description] => g
    )

[7] => Array
    (
        [hotel] => permata
        [vendor] => sip
        [order_type] => 2
        [currency] => 33
        [net] => 33000
        [rate] => 33000
        [amount] => 33000
        [bank_surcharge] => 33000
        [ticket] => 33000
        [profit] => 33000
        [selling_price] => 33000
        [description] => h
    )

[8] => Array
    (
        [hotel] => permata
        [vendor] => sip
        [order_type] => 5
        [currency] => 34
        [net] => 34000
        [rate] => 34000
        [amount] => 34000
        [bank_surcharge] => 34000
        [ticket] => 34000
        [profit] => 34000
        [selling_price] => 34000
        [description] => i
    )

[9] => Array
    (
        [hotel] => permata
        [vendor] => sip
        [order_type] => 3
        [currency] => 35
        [net] => 35000
        [rate] => 35000
        [amount] => 35000
        [bank_surcharge] => 35000
        [ticket] => 35000
        [profit] => 35000
        [selling_price] => 35000
        [description] => j
    )

[10] => Array
    (
        [hotel] => permata
        [vendor] => sip
        [order_type] => 4
        [currency] => 36
        [net] => 36000
        [rate] => 36000
        [amount] => 36000
        [bank_surcharge] => 36000
        [ticket] => 36000
        [profit] => 36000
        [selling_price] => 36000
        [description] => k
    )

[11] => Array
    (
        [hotel] => permata
        [vendor] => sip
        [order_type] => 6
        [currency] => 37
        [net] => 37000
        [rate] => 37000
        [amount] => 37000
        [bank_surcharge] => 37000
        [ticket] => 37000
        [profit] => 37000
        [selling_price] => 37000
        [description] => l
    )
)

(This two array i get from dynamic field generated via javascript) Any solution will be appreciated a lot.. Thanks

  • 写回答

3条回答 默认 最新

  • doujiao9426 2013-10-31 04:43
    关注

    Use the following since you are trying to merge arrays based on the key number of the second array:

    foreach($second_array as $key => $value){
        if($key >= 0 && $key <= 5){
            $new_array[$key] = array_merge($second_array[$key], $first_array[0]);
        }
        if($key >= 6 && $key <= 11){
            $new_array[$key] = array_merge($second_array[$key], $first_array[1]);
        }
        //etc.......
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。