Salut,
Le problème est que tu redéfinie $HD là :
$HD[] = (string)$dataArray[$HD];
Donc à la seconde itération de la boucle $HD ne vaut plus 1 mais est un tableau.
D'ailleurs une erreur devrait être générée. J'imagine qu'elles ne sont pas activées. Ajoute donc ceci tout en haut de ton code :
ini_set('display_errors', 1);
error_reporting(-1);
Cordialement,
Kohntark -