Hi,
$final_list[] = $listitem;
Hmmm. Evtl. verträgt sich das mit array_merge nicht so ganz ...
Du könntest mal folgendes probieren (anstelle dem oberen):
$final_list = array_merge ($final_list, array ($listitem));
Wenn's das ist, würde es das Phänomen erklären, aber eigentlich dürften sich die beiden (array_merge und []) nicht in die Quere kommen ...
Grüße,
Christian