如何将数组与动态输入结合起来?

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);