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.