如何将数组与动态输入结合起来?
How to combine array with dynamic input?
我的代码是这样的:
<?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
)
);
?>
如果代码运行,结果是这样的:
Array (
[0] => Array
(
[id] => 1
[name] => chelsea
)
[1] => Array
(
[id] => 2
[name] => mu
)
[2] => Array
(
[id] => 4
[name] => city
)
[3] => Array
(
[id] => 5
[name] => liverpool
)
)
我想像这样更改结果:
Array (
[0] => Array
(
[id] => 1
[name] => chelsea
)
[1] => Array
(
[id] => 2
[name] => mu
)
[2] => Array
(
[id] => 3
[name] => city
)
[3] => Array
(
[id] => 4
[name] => liverpool
)
)
我该怎么做?
注意:数组 $b
中索引 id
的值是动态的。所以索引 id
的值可以在 1 - 5
之间
将$offset = end($a)['id'];
改为$offset = end($a)['id'] - $b[0]['id'] + 1;
Live demo.
此代码应该有效
$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);
我的代码是这样的:
<?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
)
);
?>
如果代码运行,结果是这样的:
Array (
[0] => Array ( [id] => 1 [name] => chelsea )
[1] => Array ( [id] => 2 [name] => mu )
[2] => Array ( [id] => 4 [name] => city )
[3] => Array ( [id] => 5 [name] => liverpool )
)
我想像这样更改结果:
Array (
[0] => Array ( [id] => 1 [name] => chelsea )
[1] => Array ( [id] => 2 [name] => mu )
[2] => Array ( [id] => 3 [name] => city )
[3] => Array ( [id] => 4 [name] => liverpool )
)
我该怎么做?
注意:数组 $b
中索引 id
的值是动态的。所以索引 id
的值可以在 1 - 5
将$offset = end($a)['id'];
改为$offset = end($a)['id'] - $b[0]['id'] + 1;
Live demo.
此代码应该有效
$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);