我的代码是这样的:
<?php
$a = array(
array('id'=>1,'name'=>'chelsea'),
array('id'=>2,'name'=>'mu')
);
$b = array(
array('id'=>2,'name'=>'city'),
array('id'=>3,'name'=>'liverpool')
);
$offset = end($a)['id'];
$c = array_merge(
$a,
array_map(
function($v)use($offset){
$v['id'] += $offset;
return $v;
}, $b
)
);
?>
如果代码运行,结果如下:
数组(
[0] =&gt;排列 ( [id] =&gt; 1 [name] =&gt;切尔西 )
[1] =&gt;排列 ( [id] =&gt; 2 [name] =&gt;亩 )
[2] =&gt;排列 ( [id] =&gt; 4 [name] =&gt;市 )
[3] =&gt;排列 ( [id] =&gt;五 [name] =&gt;利物浦 )
)
我想改变这样的结果:
数组(
[0] =&gt;排列 ( [id] =&gt; 1 [name] =&gt;切尔西 )
[1] =&gt;排列 ( [id] =&gt; 2 [name] =&gt;亩 )
[2] =&gt;排列 ( [id] =&gt; 3 [name] =&gt;市 )
[3] =&gt;排列 ( [id] =&gt; 4 [name] =&gt;利物浦 )
)
我该怎么做?
注意:数组id
中索引$b
的值为dinamyc。因此索引id
的值可以介于1-5之间
答案 0 :(得分:1)
将$offset = end($a)['id'];
更改为$offset = end($a)['id'] - $b[0]['id'] + 1;
Live demo.
答案 1 :(得分:1)
此代码应该可以使用
$a = array(
array('id'=>1,'name'=>'chelsea'),
array('id'=>2,'name'=>'mu')
);
$b = array(
array('id'=>3,'name'=>'city'),
array('id'=>5,'name'=>'liverpool')
);
$offset = end($a)['id'];
// generate a new array with new ids based on array a
foreach($b as $value){
$new_array[] =array('id'=>++$offset,'name'=>$value['name']);
}
$c = array_merge($a,$new_array);
print_r($c);