Tengo un array en forma de árbol con las categorías de un foro y lo que quiero hacer es un función recorrerArbol( arbol , funcion ) que a cada elemento del árbol lo pasa por la función "funcion".
¿Hay alguna forma de hacer esto en PHP?
| |||
![]() Tengo un array en forma de árbol con las categorías de un foro y lo que quiero hacer es un función recorrerArbol( arbol , funcion ) que a cada elemento del árbol lo pasa por la función "funcion". ¿Hay alguna forma de hacer esto en PHP? |
| |||
Respuesta: ¿Cómo paso una función como parámetro? |
| |||
Respuesta: ¿Cómo paso una función como parámetro? El problema es que la matriz tiene forma de árbol y la cantidad de nodos que tiene es arbitraria, entonces precisaría una función recursiva para recorrerla por completo, con el foreach y el array_map puedo aplicarle una función a los arrays del "array base", pero lo que quiero no es sólo eso, por lo menos me parece que es así, si alguien tiene alguna idea la agradeceré. PD: además sería útil saber si se pueden pasar funciones parámetro. |
| ||||
Respuesta: ¿Cómo paso una función como parámetro? Bueno en el caso tuyo lo que puedes hacer es si recorriste el array con un foreach, verificar si el valor que tiene es un array, usando is_array(), si es así entonces recorres de nuevo la funcion con el valor corrrespondiente.
__________________ Verifica antes de preguntar. Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos |
| |||
Respuesta: ¿Cómo paso una función como parámetro? Pues debo admitir que no lo sabía, pero según el manual de array_map, en PHP > 5.3.0 lo siguiente es válido: $funcion = function($parametros...) { ... } array_map($funcion, $vector) Fíjate también por aquí: http://www.php.net/manual/en/languag...types.callback Saludos. |
| ||||
Respuesta: ¿Cómo paso una función como parámetro? Puedes también ocupar una función recursiva para irlos aplicando:
Código PHP:
Ver original Saludos. |
| |||
![]() Lo que quiero hacer sería:
Código:
Exácto, pero mi duda es simplemente si hay alguna forma de pasar funciones por parámetro. recorrerArray( arbol , funcion ){ si( is_array( elemento ) ){ funcion( elemento ); foreach( elemento as $valor ){ recorrerArray( $valor ); } }else{ funcion( elemento ); } |