各サブ配列がDBに挿入する行を表す多次元配列を生成しようとしています。これは、CodeIgnitersのbatch_insert関数を使用して各行をDBに追加できるようにするためです。
ループ内で各サブ配列を作成し、多次元配列に挿入しようとしています。 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
配列の配列を取得します。
array_Push($allplayerdata, $playerdata);
これは、角括弧構文で要素を追加するのと同等です
$allplayerdata[] = $playerdata;
これにより、2番目の配列が最初の配列に追加されます。 マージ 何か違う。
$allplayerdata[] = $playerdata;