在PHP中合并和组合两个数组

时间:2014-11-13 11:06:52

标签: php mysql forms

我有两个数组,一个是从我的数据库中的表创建的,另一个是从HTML表单创建的(我们称之为 array_db array_form )。

我想在 mySQL 数据库中的表格中插入 array_db ,但在插入之前我必须合并 array_db 使用 array_form 并删除重复项。如果有重复项,我希望将 array_form 中的值插入 array_db

注意 array_form 并不总是相同,这意味着它可能具有比以下ex更多或更少的值。

这样做的最佳方式是什么?

Array_db

Array
(
    [task_id] => task_id
)
Array
(
    [user_id] => user_id
)
Array
(
    [customer_id] => customer_id
)
Array
(
    [created] => created
)
Array
(
    [pickup] => pickup
)
Array
(
    [tire_front] => tire_front
)
Array
(
    [tire_back] => tire_back
)
Array
(
    [tire_reg] => tire_reg
)
Array
(
    [tire_indl] => tire_indl
)
Array
(
    [tube_front] => tube_front
)
Array
(
    [tube_back] => tube_back
)
Array
(
    [hub_front] => hub_front
)
Array
(
    [hub_back] => hub_back
)
Array
(
    [hub_adjust] => hub_adjust
)
Array
(
    [rim_front] => rim_front
)
Array
(
    [rim_back] => rim_back
)
Array
(
    [rim_adjust] => rim_adjust
)
Array
(
    [spoke_missing_front] => spoke_missing_front
)
Array
(
    [spoke_missing_back] => spoke_missing_back
)
Array
(
    [spoke_comp_front] => spoke_comp_front
)
Array
(
    [spoke_comp_back] => spoke_comp_back
)
Array
(
    [break_adjust_front] => break_adjust_front
)
Array
(
    [break_adjust_back] => break_adjust_back
)
Array
(
    [break_cable_front] => break_cable_front
)
Array
(
    [break_cable_back] => break_cable_back
)
Array
(
    [break_pad_front] => break_pad_front
)
Array
(
    [break_pad_back] => break_pad_back
)
Array
(
    [gear_adj_front] => gear_adj_front
)
Array
(
    [gear_adj_back] => gear_adj_back
)
Array
(
    [gear_cable_front] => gear_cable_front
)
Array
(
    [gear_cable_back] => gear_cable_back
)
Array
(
    [gear_shift_front] => gear_shift_front
)
Array
(
    [gear_shift_back] => gear_shift_back
)
Array
(
    [bicy_chain] => bicy_chain
)
Array
(
    [cog_wheel] => cog_wheel
)
Array
(
    [cassette] => cassette
)
Array
(
    [chainwheel] => chainwheel
)
Array
(
    [crankset] => crankset
)
Array
(
    [crank] => crank
)
Array
(
    [fp_service] => fp_service
)
Array
(
    [status] => status
)
Array
(
    [service_1] => service_1
)
Array
(
    [service_2] => service_2
)
Array
(
    [service_3] => service_3
)
Array
(
    [service_4] => service_4
)
Array
(
    [price_approx] => price_approx
)
Array
(
    [price_max] => price_max
)

Array_form

(
[tire_back] => tire_back
[tube_back] => tube_back
[gear_shift_front] => gear_shift_front
[user_id] => 0
[customer_id] => 6
)

1 个答案:

答案 0 :(得分:1)

正如我在评论中所说,这应该可以通过首先展平$array_db来解决,例如像这样

$flat_array_db = array();
foreach ($array_db as $subArray) {
    foreach ($subArray as $key=>$value) {
        $flat_array_db[$key] = $value;
    }
}

一旦你完成了这个,一个简单的array_merge($flat_array_db, $array_form)应该可以做到。