El problema son tus nombres de variable, cuando leí tu código me confundi, y eso es lo mismo que te paso. Ademas si ya tienes los archivos con el while ¿porque recorres de nuevo?
Cita: foreach ($archivo as $sarchivo){
¿No deberias ir ya a $vlineas?, ya tienes el archivo o por lo menos el nombre.
Y repito, tus nombres de variables son muy malos
$archivo as
$sarchivo
Recomiendo que pongas algunos 'echo's para que veas que traen las variables o usa el PDT con eclipse para que puedas debugear