Merge Row Data from Multiple Arrays
Merging data from multiple arrays can be a common requirement when working with complex data structures. This task becomes more challenging when the arrays have different keys and values.
To merge two arrays while retaining the original keys and values, you can use the array_merge_recursive function. This function recursively merges the elements of the input arrays. However, it requires the arrays to have string keys in order to be correctly merged.
Let's consider the example provided in the question:
$ar1 = [ ['gross_value' => '100', 'quantity' => '1'], ['gross_value' => '200', 'quantity' => '1'] ]; $ar2 = [ ['item_title_id' => '1', 'order_id' => '4'], ['item_title_id' => '2', 'order_id' => '4'] ];
To merge these arrays using array_merge_recursive, we need to first ensure that all the numeric keys are converted to strings. This can be done using the array_map function:
$ar1 = array_map('strval', $ar1); $ar2 = array_map('strval', $ar2);
Now, we can use array_merge_recursive to merge the arrays:
$result = array_merge_recursive($ar1, $ar2);
The resulting $result array will have the desired structure:
[ [ 'gross_value' => '100', 'quantity' => '1', 'item_title_id' => '1', 'order_id' => 4 ], [ 'gross_value' => '200', 'quantity' => '1', 'item_title_id' => '2', 'order_id' => 4 ] ]
The above is the detailed content of How to Merge Arrays with Different Keys and Values in PHP?. For more information, please follow other related articles on the PHP Chinese website!