Du musst zwei Sachen unterscheiden: Arrays, die du selber anlegst und solche, die durch Funktionen wie zum Beispiel mysql_fetch_assoc erzeugt werden.Zitat von Manni_the_Dark
Bei letzeren ist eine explizite Vorgabe,das es sich um ein Array handelt nicht notwendig. Bei allen anderen Variablen, die ein Array darstellen sollen, musst du das natürlich angeben.
In dem Fall musst du dein Array immer mit $array[] = inhalt oder eben mit $array = array(inhalt) definieren.
$array = "irgendwas"; wird PHP nie als Array sondern immer als String interpretieren, so das bei einem Schleifendurchlauf immer der String "irgendwas" in seine einzelnen Buchstaben zerlegt wird.