I fixed it although I worked around it. Here's the new working code that uses a secondary array and then merges them
<?php
function &main(&$aParams) {
$aResults = get_file_list($aParams['dir'], true);
foreach ($aResults as $key => $row) {
if ($aResults[$key]['size'] <= 1024) {
$aTemp['filesize'] = $aResults[$key]['size']." bytes";
} elseif ($aResults[$key]['size'] <= 1048576) {
$aTemp['filesize'] = round($aResults[$key]['size']/1024,1)." kb";
} else {
$aTemp['filesize'] = round($aResults[$key]['size']/1048576,1)." mb";
}
$aTemp['timestamp'] = date("Y-m-d G:i:s", $aResults[$key]['modified']);
if (file_exists($_SERVER['DOCUMENT_ROOT'].$aResults[$key]['dir'].$aResults[$key]['base'].$aResults[$key]['ext'].".caption")) {
$fp = fopen($_SERVER['DOCUMENT_ROOT'].$aResults[$key]['dir'].$aResults[$key]['base'].$aResults[$key]['ext'].".caption", 'r');
$aTemp['caption'] = @fread ($fp, filesize($_SERVER['DOCUMENT_ROOT'].$aResults[$key]['dir'].$aResults[$key]['base'].$aResults[$key]['ext'].".caption"));
fclose ($fp);
} else {
$aTemp['caption'] = $aResults[$key]['base'].$aResults[$key]['ext'];
}
$aResults[$key] = array_merge($aResults[$key], $aTemp);
}
return $aResults;
}
?>
Still can't figure out why it was triggering the warnings.
Oh well.
Thanks to everyone that chimed in.