$array[chiave] è sbagliato, almeno che chiave non sia una costante o non sia una chiave numerica.

$array['chiave'] è giusto

se devi mettere un array in mezzo ad una stringa tra doppi apici usa le parentesi graffe per essere sicura che l'array venga interpretato sempre correttamente, o se hai molti apici e non hai voglia di fare escape anche per tenerlo più pulito usa un heredoc.

per il resto non ho ancora avuto tempo di dargli una seria occhiata.