在循环内向多维数组添加数组

Leo*_*tch 19 php arrays codeigniter multidimensional-array

我试图生成一个多维数组,每个子数组代表我想插入我的数据库的行.原因是我可以使用CodeIgniters batch_insert函数将每行添加到数据库中.

我试图在循环中创建每个子数组并将其插入到多维数组中.Google建议使用array_merge,但在使用下面的代码在多维数组上使用'print_r'后,只显示最后一个子数组.

这是我的代码:

$allplayerdata = array(); //M-D container array
for ($i = 1; $i <= 11; $i++)
{
    $playerdata = array(
                        'player_id' => $this->input->post('player' . $i),
                        'goals' => $this->input->post('playergoals' . $i),
                        'player_num' => $i,
                        'fixture_id' => $this->input->post('fixture_id')
                    );

    //Merge each player row into same array to allow for batch insert
    $allplayerdata = array_merge($allplayerdata, $playerdata);
}
print_r($allplayerdata);
Run Code Online (Sandbox Code Playgroud)

谁能发现我哪里出错?感谢帮助!

Mar*_*vel 33

这是因为array_merge对于这种情况来说这不是正确的操作.由于所有$playerdata数组都具有相同的键,因此会覆盖这些值.


您想要用于array_push附加到数组.这样您将获得一个数组$playerdata数组.

array_push($allplayerdata, $playerdata);
Run Code Online (Sandbox Code Playgroud)

这相当于使用方括号语法添加元素

$allplayerdata[] = $playerdata;
Run Code Online (Sandbox Code Playgroud)


JK.*_*JK. 9

这会将第二个数组添加到第一个数组:合并是不同的.

$allplayerdata[] = $playerdata;
Run Code Online (Sandbox Code Playgroud)