Si colocas el return dentro de un loop es obvio que se salga de inmediato, pues como todos sabemos return finaliza la ejecución de la función.
Si necesitas devolver algo debe ser al finalizar al loop, y de algún modo debes ir almacenando o concatenando los valores del loop para devolverlos al final.
¿No te parece lógico?
PDTA: al parecer no tienes ni la menor idea de cómo estructurar una función, o peor aún, como es que "funcionan".
Siendo así te sugiero leer el siguiente manual para que aprendas todo lo necesario acerca de las funciones:
http://www.php.net/manual/es/functions.user-defined.php