Recursividad es un concepto no de PHP, sino de cualquier lenguaje de programación. Su complejidad reside en que es una idea "antinatural", no estás acostumbrado a pensar recursivamente.
Un ejemplo tonto: Quiero saludar 8 veces "Hola".
Código:
function saluda($cantidad) {
echo "Hola!";
if($cantidad<7){
saluda($cantidad+1);
}
}
saluda(0);
Es un ejemplo idiota, sí, pero así te haces a la idea. En general (y creo no equivocarme) siempre hay una forma de hacer lo que se podría hacer con recursividad, sin ella. Pero con recursividad ahorras código, que es uno de los 10 mandamientos del buen programador :)