En realidad no sé si entendí bien. Pero el array que guardas está disponible en todo el script, no sólo dentro del bucle. El problema (creo) está en la línea:
Código PHP:
$secciones = $zona[] = $file;
$todas_las_zonas = $zonas = $file;
esta´haciendo una doble asignación que no entiendo, y luego imprimes la variable $secciones, que evidentemente tiene sólo el último valor de $file. Prueba algo así:
Código PHP:
echo"TODAS LAS SECCIONES<br>";
if ($carpeta_zonas = opendir('./zonas')) {
while (false !== ($file = readdir($carpeta_zonas))) {
if ($file != "." && $file != "..") {
echo "$file<br>";
$zona[] = $file;
}
}
closedir($carpeta_zonas);
}
echo "<hr>";
foreach($zona as $seccion){
echo $seccion."<br>";
}
echo "<hr>";