Es decir, si te he entendido bien, tu problema es que $dato e $id no son arrays. Las toma como cadenas. Y la sintaxis [] para cadenas sirve para coger caracteres individuales dentro de la cadena.
Asi que tu problema esta a la hora de crear $dato e $id. Si ademas dices que son el ultimo registro, quizas estas haciendo:
Código PHP:
$dato=$row['campo'];
$id=$row['id'];
cuando lo que deberias estar haciendo es:
Código PHP:
$dato[]=$row['campo'];
$id[]=$row['id'];
Para ir creando los elementos del array.
Saludos.