使用多维数组在键上合并php数组
这是我的阵列:使用多维数组在键上合并php数组,php,arrays,Php,Arrays,这是我的阵列: array 0 => array 'id' => int 220950 'order_reference' => string '600125479' 1 => array 'id' => int 220985 'order_reference' => string '498638' 这是我的另一个数组 array 0 =>
array
0 =>
array
'id' => int 220950
'order_reference' => string '600125479'
1 =>
array
'id' => int 220985
'order_reference' => string '498638'
这是我的另一个数组
array
0 =>
array
'entity_id' => 1
'order_status' => 'test'
1 =>
array
'entity_id' => 2
'order_status' => 'test2'
我的目标是实现这一点:
array
0 =>
array
'id' => int 220950
'order_reference' => string '600125479'
'entity_id' => 1
'order_status' => 'test'
1 =>
array
'id' => int 220985
'order_reference' => string '498638'
'entity_id' => 2
'order_status' => 'test2'
通过array_merge,我成功地实现了这一目标(不是我想要的目标),这是我在stackoverflow和其他论坛上找到的全部:
array
0 =>
array
'id' => int 220950
'order_reference' => string '600125479'
1 =>
array
'id' => int 220985
'order_reference' => string '498638'
array
2 =>
array
'entity_id' => 1
'order_status' => 'test'
3 =>
array
'entity_id' => 2
'order_status' => 'test2'
欢迎提出任何意见或建议:)谢谢
使用foreach,我可以添加键值,但我正在寻找一种更干净的方法:)需要注意的是,您的数组没有可比较的联合值,因此您需要确保键始终对齐,我认为这样的循环可以做到这一点:
for ($i = 0; $i < count($array1); $i++)
{
$new_array[] = array_merge($array1[$i], $array2[$i]);
}
以下是您的问题的答案,请使用和
使用数组\u合并和数组\u映射
$array1 = array(
[
"id" => 220950,
"order_reference" => "600125479"
],
[
"id" => 220985,
"order_reference" => "498638"
]
);
$array2 = array(
[
"entity_id" => 1,
"order_status" => "test"
],
[
"entity_id" => 2,
"order_status" => "test2"
]
);
$result = array_map("array_merge",$array1,$array2);
print_r($result);
输出
Array
(
[0] => Array
(
[id] => 220950
[order_reference] => 600125479
[entity_id] => 1
[order_status] => test
)
[1] => Array
(
[id] => 220985
[order_reference] => 498638
[entity_id] => 2
[order_status] => test2
)
)
工作您的输入是什么?你试过了吗?这可能对你有帮助。@Smartpal可能重复我想避免使用for或foreach,我想使用数组_map@Chester过来看。我已经发布了答案:可以使用数组\地图或数组\步行完成吗?:)而不是使用for或foreach?:)我添加了一个示例,但我认为只使用循环更具可读性。@Chester这就是您想要的!干净整洁!
array (size=2)
0 =>
array (size=4)
'id' => int 220950
'order_reference' => string '600125479' (length=9)
'entity_id' => int 1
'order_status' => string 'test' (length=4)
1 =>
array (size=4)
'id' => int 220985
'order_reference' => string '498638' (length=6)
'entity_id' => int 2
'order_status' => string 'test' (length=4)
$array1 = array(
[
"id" => 220950,
"order_reference" => "600125479"
],
[
"id" => 220985,
"order_reference" => "498638"
]
);
$array2 = array(
[
"entity_id" => 1,
"order_status" => "test"
],
[
"entity_id" => 2,
"order_status" => "test2"
]
);
$result = array_map("array_merge",$array1,$array2);
print_r($result);
Array
(
[0] => Array
(
[id] => 220950
[order_reference] => 600125479
[entity_id] => 1
[order_status] => test
)
[1] => Array
(
[id] => 220985
[order_reference] => 498638
[entity_id] => 2
[order_status] => test2
)
)