Script de fonction récursive
Bonjour,
Je vous sollicite pour la mise en place d'une fonction récursive.
Je n'arrive pas à la mettre en place.
J'ai un tableau qui liste les tables d'une base de données, et des sous-tableaux associés qui contiennent qui contiennent la clé étrangère de la table parente :
Exemple :
ARRAY([TABLE1] => ARRAY([0] => TABLE3 [1] => TABLE4) [TABLE3] => ARRAY([0] => TABLE2 [1] => TABLE5)) ...
Le but de ma fonction récursive est de trouver le meilleur chemin pour arrive d'une table X à une table Z.
La finalité : pouvoir constituer automatiquement les jointures entre table pour mettre en place une requête dynamique.
Voici la fonction mise en place :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
print_r(test($tables,"SLE_L1"));
FUNCTION test($tables,$element){
$return = ARRAY();
IF($element == "MAIS_STOCK_S1"){
RETURN $return;
}
ELSE{
IF(ISSET($tables[$element])){
FOREACH($tables[$element] AS $enfant){
//ECHO $element." //// ";
//print_r($enfant); ECHO "</br>";
$return[$element][] = $enfant;
$return = ARRAY_MERGE(test($tables,$enfant),$return);
}
}
RETURN $return;
}
} |
Cette fonction me retourne bien des données mais cela ne correspond pas à mon chemin optimal.
Je demande votre aide donc, si vous avez besoin d'information complémentaire n'hésitez pas !
Cordialement