我正在尝试生成一个多维数组,其中每个子数组代表我想要插入到数据库中的一行。这样做的原因是我可以使用 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);
谁能发现我哪里出错了?感谢帮助!
这是因为array_merge
对于这种情况来说不是正确的操作。由于所有的$playerdata
数组具有相同的键,但值会被覆盖。
你想使用array_push
附加到数组。这样你会得到一个数组$playerdata
arrays.
array_push($allplayerdata, $playerdata);
相当于用方括号语法添加一个元素
$allplayerdata[] = $playerdata;
- array_merge- 合并一个或多个数组 http://php.net/manual/en/function.array-merge.php
- array_push- 将一个或多个元素推入数组末尾 http://php.net/manual/en/function.array-push.php
- 使用方括号语法创建/修改 http://php.net/manual/en/language.types.array.php#language.types.array.syntax.modifying
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)