当前位置: 动力学知识库 > 问答 > 编程问答 >

php - Merge or Combine Two Array Into Single Array

问题描述:

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

网友答案:

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.......
}
网友答案:

Try like

$arr_cnt = count($arr1);
for($i = 0 ; $i < $arr_cnt ; $i++) {

    foreach($arr1[$i] as $key1 => $value1) {    
        $new_arr[$i][$key1] = $value1;
    }
    foreach($arr2[$i] as $key2 => $value2) {    
        $new_arr[$i][$key2] = $value2;
    }
}
print_r($new_arr);
网友答案:
 $outputArray = array();
 foreach ($firstArray as $location) {
     foreach ($secondArray as $option) {
         $outputArray[] = array_merge($location,$option);
     }
 }
分享给朋友:
您可能感兴趣的文章:
随机阅读: