Foros del Web » Programando para Internet » PHP »

Ayuda funcion recursiva

Estas en el tema de Ayuda funcion recursiva en el foro de PHP en Foros del Web. Tengo una función que hace algo recursivamente, pero soy incapaz de programarla despues de muchas horas intentandolo. Sé que se puede, porque se hace algo ...
  #1 (permalink)  
Antiguo 24/05/2008, 06:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 2
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda funcion recursiva

Tengo una función que hace algo recursivamente, pero soy incapaz de programarla despues de muchas horas intentandolo. Sé que se puede, porque se hace algo repetidamente con la misma lógica, para obtener un array multidemensional. Sólo soy capaz de hacerla sin recursión pero limitando los ciclos a un numero determinado. ¿Alguien me echa una mano y me dice como podría hacerse recursiva?


La funcion es esta:

function ($field,$arr_secuence_reverse)
{
if (count($arr_secuence_reverse) == 1)
{
return getPrimaryKey4Field($field,$arr_secuence_reverse[0],NULL);
}

if (count($arr_secuence_reverse) == 2)
{
$sel2 = select($arr_secuence_reverse[0],"pk as pk_current",NULL,$arr_secuence_reverse[1],"pk as pk_next",NULL);
foreach ($sel2 as $n2=>$v2)
{
$res[$v2['pk_current']] = getPrimaryKey4Field($field,$arr_secuence_reverse[1],'fk_'.$arr_secuence_reverse[0]."='".$v2['pk_current']."'");
}
}

if (count($arr_secuence_reverse) == 3)
{
$sel3 = select($arr_secuence_reverse[0],"pk as pk_current",NULL,$arr_secuence_reverse[1],"pk as pk_next",NULL);
foreach ($sel3 as $n3=>$v3)
{
$res[ $v3['pk_current'] ][ $v3['pk_next'] ] = getPrimaryKey4Field($field,$arr_secuence_reverse[2],'fk_'.$arr_secuence_reverse[1]."='".$v3['pk_next']."'");
}
}

if (count($arr_secuence_reverse) == 4)
{
$sel4 = select($arr_secuence_reverse[0],"pk as pk_current",NULL,$arr_secuence_reverse[1],"pk as pk_next",NULL);
foreach ($sel4 as $n4=>$v4)
{
$sel5 = select($arr_secuence_reverse[1],"pk as pk_current",NULL,$arr_secuence_reverse[2],"pk as pk_next",NULL);
foreach ($sel5 as $n5=>$v5)
{
$res[ $v4['pk_current'] ][ $v4['pk_next'] ][ $v5['pk_current'] ] = getPrimaryKey4Field($field,$arr_secuence_reverse[3],'fk_'.$arr_secuence_reverse[2]."='".$v5['pk_current']."'");
}
}
}

if (count($arr_secuence_reverse) == 5)
{
$sel5 = select($arr_secuence_reverse[0],"pk as pk_current",NULL,$arr_secuence_reverse[1],"pk as pk_next",NULL);
foreach ($sel5 as $n5=>$v5)
{
$sel6 = select($arr_secuence_reverse[1],"pk as pk_current",NULL,$arr_secuence_reverse[2],"pk as pk_next",NULL);
foreach ($sel6 as $n6=>$v6)
{
$sel7 = select($arr_secuence_reverse[2],"pk as pk_current",NULL,$arr_secuence_reverse[3],"pk as pk_next",NULL);
foreach ($sel7 as $n7=>$v7)
{
$res[ $v5['pk_current'] ][ $v5['pk_next'] ][ $v6['pk_current'] ][ $v6['pk_next'] ] = getPrimaryKey4Field($field,$arr_secuence_reverse[4],'fk_'.$arr_secuence_reverse[3]."='".$v6['pk_next']."'");
}
}
}
}
return $res;
}
  #2 (permalink)  
Antiguo 24/05/2008, 08:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda funcion recursiva

de echo las funciones recursivas son faciles.... mira, con un rreglo multidimensional

Código PHP:
function foo($arr)
{
 if (
is_array($arr))
 {
   return 
array_map('foo'$arr); // recursamos
 
}

// aqui va el tratamiento normal,
// natural... diria yo

PDTA: note que tu funcion ¿no tiene nombre?? ¿¿¿donde la vuelves a llamar???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.