Ver Mensaje Individual
  #12 (permalink)  
Antiguo 09/02/2017, 22:00
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Convertir array multidimensional en diagrama de red

El problema es que el índice para cada elemento en "todos" debe ser el campo id. Para generar el array sería algo como:

Código PHP:
Ver original
  1. // Creas el array
  2. $members = array('todos' => array());
  3. while($row = /* instrucción para leer la consulta */) {
  4.     // Agregas en 'todos'
  5.     $members['todos'][$row['id']] = $row;
  6.     // sponsor debe ser numérico para evitarte problemas, aunque sea cero
  7.     $sponsor = (int) $row['sponsor'];
  8.     // Verificas que exista el padre, o lo creas
  9.     if(!isset($members[$sponsor])) {
  10.          $members[$sponsor] = array();
  11.     }
  12.     // Solo necesitas la ID
  13.     $members[$sponsor][] = $row['id'];
  14. }

Te debe quedar algo como:
Código:
$members = Array (
	[todos] => Array ( 
		[1] => Array (
			[id] => 1
			[name] => cdiazr
			[Sponsor] => 
		)
		[2] => Array (
			[id] => 2
			[name] => sarahg
			[Sponsor] => 1
		)
		[3] => Array (
			[id] => 3
			[name] => ygn
			[Sponsor] => 1
		)
		[4] => Array (
			[id] => 4
			[name] => oscar
			[Sponsor] => 2
		)
		[5] => Array (
			[id] => 5
			[name] => usu5
			[Sponsor] => 4
		)
		[6] => Array (
			[id] => 6
			[name] => usu6
			[Sponsor] => 4
		)
		[7] => Array (
			[id] => 7
			[name] => usu7
			[Sponsor] => 4
		)
	)
	[0] => array(1)
	[1] => array(2, 3)
	[2] => array(4, 5, 6, 7)
)
Con esto y el global $members ya te debe funcionar correctamente.
__________________
- León, Guanajuato
- GV-Foto