J'essaie de générer un tableau multidimensionnel avec chaque sous-tableau représentant une ligne que je veux insérer dans ma base de données. La raison en est que je peux utiliser la fonction batch_insert de CodeIgniters pour ajouter chaque ligne à la base de données.
J'essaie de créer chaque sous-tableau dans une boucle et de l'insérer dans un tableau multidimensionnel. Google a suggéré d'utiliser array_merge, mais après avoir utilisé 'print_r' sur le tableau multidimensionnel avec le code ci-dessous, seul le dernier sous-tableau est affiché.
Voici mon code:
$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);
Quelqu'un peut-il repérer où je me trompe? L'aide est appréciée!
Ceci est dû au fait array_merge
n'est pas la bonne opération pour cette situation. Puisque tous les $playerdata
les tableaux ont les mêmes clés, les valeurs sont remplacées.
Vous souhaitez utiliser array_Push
à ajouter à un tableau. De cette façon, vous obtiendrez un tableau de $playerdata
tableaux.
array_Push($allplayerdata, $playerdata);
Ce qui équivaut à ajouter un élément avec la syntaxe entre crochets
$allplayerdata[] = $playerdata;