Ver Mensaje Individual
  #11 (permalink)  
Antiguo 09/02/2017, 08:11
Triby2
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 10 años, 4 meses
Puntos: 30
Respuesta: Convertir array multidimensional en diagrama de red

Disculpa Triby, pero la función de recursividad que ahi propones no la logro implementar con éxito ya que esa función está escrita de manera "suposición".

Código PHP:
funcion verCategorias(padre 0) {
      foreach(
categorias[padre] as id) {
            print 
categorias['todos'][id]['nombre']
            
// Revisar si la categoría tiene hijos
            
if(isset(categorias[id])) {
                     
verCategorias(id)
            }
      }

Este es parte de mi array que consigo de la manera que tu especificas:

Código:
$members = Array
(
    [todos] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [name] => cdiazr
                    [Sponsor] => 
                )

            [1] => Array
                (
                    [id] => 2
                    [name] => sarahg
                    [Sponsor] => 1
                )

            [2] => Array
                (
                    [id] => 3
                    [name] => ygn
                    [Sponsor] => 1
                )

            [3] => Array
                (
                    [id] => 4
                    [name] => oscar
                    [Sponsor] => 2
                )

            [4] => Array
                (
                    [id] => 5
                    [name] => usu5
                    [Sponsor] => 4
                )

            [5] => Array
                (
                    [id] => 6
                    [name] => usu6
                    [Sponsor] => 4
                )

            [6] => Array
                (
                    [id] => 7
                    [name] => usu7
                    [Sponsor] => 4
                )
Y aquí tu función de recursividad como yo entiendo que tendría que ser (a partir de la que compartiste) pero no me funciona, obviamente no lanza nada, página en blanco:

Código PHP:
function verCategorias($id 0) {
    global 
$members;
    foreach(
$members[$id] as $id) {
        print 
$members['todos'][$id]['name'];
        
// Revisar si la categoría tiene hijos
        
if(isset($members[$id])) {
            
verCategorias($id);
        }
    }

He tenido que añadir global pq no le pasas por ningún la el array principal, dentro de foreach.
$members[$id] no existe pues hay que poner el ['todos'] antes y ni así me lanza nada.