PHP-php合并2个数组为一个数组
$arr = array(
array(
'id' => 1,
'a' => 'a',
'b' => 'b',
),
array(
'id' => 2,
'a' => 'a',
'b' => 'b',
),
array(
'id' => 3,
'a' => 'a',
'b' => 'b',
),
);
$arr2 = array(
array(
'id' => 2,
'c' => 'c',
),
array(
'id' => 1,
'c' => 'c',
),
array(
'id' => 3,
'c' => 'c',
),
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
除了循环遍历我想不到好方法。
function my_array_bind($arr, $arr2, $bind_key='bind') {
$tmp=array();
$result=array();
foreach($arr2 as $data) {
$tmp[array_shift($data)]=$data;
}
foreach($arr as $data) {
$id=array_shift($data);
$data[$bind_key]=$tmp[$id];
$result[$id]=$data;
}
return $result;
}
array_merge
(PHP 4, PHP 5)
array_merge — 合并一个或多个数组
说明
array array_merge ( array $array1 [, array $array2 [, array $... ]] )
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
Example #1 array_merge() 例子
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4);
$result = array_merge($array1, $array2);
print_r($result);
?>
以上例程会输出:
Array
(
[color] => green
[0] => 2
[1] => 4
[2] => a
[3] => b
[shape] => trapezoid
[4] => 4
)
系统自带的函数