Cita:
Iniciado por NSD
La funcion tambien puede resolverse por recursividad, pero se me ocurrio plantearla asi, quizas alguien si esta interesado pueda hacerla como para comparar ambos metodos y buscar la exelencia aunque a fines practicos no es muy relevante.
Una forma muy simple de construir ese array,independientemente de la dimension de la matriz , es:
Código PHP:
Ver original/*
La clave es el usuario referido, el valor es el usuario padre.Array ordenado segun el usuario padre.
*/
/*
La clave es el usuario referido, el valor es el usuario padre.Array ordenado segun el usuario padre.
*/
3=>1,
2=>1,
4=>2,
5=>2,
6=>2,
10=>3,
11=>3,
12=>3,
20=>4,
21=>4,
22=>4,
30=>11,
31=>11,
32=>12
);
$root=null;
foreach($assigns as $key=>$value)
{
// Por definicion, nunca existira $nodes[$key]
if(!isset($nodes[$value])) {
if($root==null)
{
// Al estar ordenados por id de usuario, el primero siempre es root.
$root=array($value=>& $nodes[$value]); }
}
$nodes[$value][$key]=& $nodes[$key];
}
Ejemplo en este
link