Nombre.. el trabajo lo hiciste tú... y a simple viste se ve mucho mejor a lo que tenias antes..
Solo.. un detalle... aunque entiendo que manejas arhivos.. pero no sé que haces con ellos

.. solo quisiera mencionar la parte donde haces:
$extension=substr($nombres[$i], -4);
... con esto sacas la extención con todo y punto... pero ojo con aquellos archivos que tienen 4 carácteres como extención...

aunque solo se me viene a la mente el caso de los
jepg... no sé si te importe... tendrías que hacer una validación por ahí...
Saludos!