Proszę. U mnie to działa.
$db = new PDO('mysql:dbname=test;host=localhost', 'root', '');
$ranks = array('Uzytkownik', 'Moderator', 'Administrator');
foreach($ranks as $rank) {
$addedQuery = $db->prepare("
INSERT INTO rank (name)
VALUE (:rank)
");
$addedQuery->execute([
'rank' => $rank
]);
}
1. Nie użyłem tablicy asocjacyjnej. Nie wydaję mi się ona potrzebna.
2. Foreach przy bazach danych jest raczej najlepszą pętlą.
3. Zastanówmy się jeszcze nad Twoim kodem.
Zobacz co zrobi ten kod.
$tablica = array('name' => 'uzytkownik', 'name' => 'moderator');
echo $tablica['name'];
Jak zauważyłeś wypisuje tylko moderator. W tym wypadku działa to jak:
$tablica[0] = 'uzytkownik'; //przypisujesz wartość początkową
$tablica[0] = 'moderator'; //tutaj zmieniasz tę wartość
//lub
$x = 1; //przypisujesz wartość początkową
$x = 2; //tutaj zmieniasz tę wartość
Radzę poczytać o tablicach i tablicach asocjacyjnych :) - to nie jest powiedziane złośliwie, wręcz przeciwnie.
Pozdrawiam :)