Ciao, dovresti metterla da quel che vedo all'interno del foreach dove cicli le possibili immagini caricate.
Se non ritorno quello che ti aspetti passi al ciclo successivo senza valorizzare $data ulteriormente.
Così come scritto a vedere $data però, pare che venga sovrascritto ad ogni iterazione del ciclo. In teoria dove usi $data = chunk_split(base64_encode($data)); dovresti concatenare il contenuto visto che stai cercando di caricare 1 o più immagini.