Vaya, en una aventura en PHP me encontré con este error el cual se vuelve un poco fastidioso y a veces difícil de entender porque puede producirse de una forma rara. Aca un ejemplo:
Si creamos un array de la siguiente forma:
$my_table[0] = "A value";
$my_table[1] = "Other value";
El código funcionará pero no siempre lo cual es algo raro, pero así es. La forma correcta será declarando la variable de forma correcta antes de ingresarle los valores:
$my_table = array();
$my_table[0] = "A value";
$my_table[1] = "Other value";
Esto solo conduce a ser más estricto al declarar ese tipo de variables.