Functie herhalen tot er resultaat is

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bob v H

Bob v H

18/06/2013 18:55:37
Quote Anchor link
Beste coders,

Ik heb de volgende code gemaakt:
function get_highest_parent($pID) {
$parent = get_first_where("parent","pages","pID",$pID);
if ($parent == 0) {
return get_first_where("path","pages","pID",$pID);
} else {
$pID = $parent;
$parent = get_first_where("parent","pages","pID",$parent);
if ($parent == 0) {
return get_first_where("path","pages","pID",$pID);
} else {
// repeat same function
}
}
}
Zoals je ziet wil ik dat deze functie herhaald wordt totdat een pagina is gevonden met de waarde "0" in de kolom "parent".

Het doel van de functie: ik heb een database met allemaal pagina's die ondermeer een uniek id (pID), parent (0 indien geen bovenliggende pagina) en path hebben. Ik wil de path van de pagina die het hoogst in de menustructuur staat echo'en. De database ziet er ongeveer als volgt uit:
pID | path | parent
1 | home | 0
2 | over | 0
3 | over/geschiedenis | 2
4 | over/geschiedenis/jaren80 | 3

Dus op de pagina met pID 1 zou de functie returnen "home", en op de pagina's met pID 2, 3 en 4 zou de functie returnen "over".

Is er een minder omslachtige manier om deze herhaalfunctie op te stellen?

Groeten, Bob
 
PHP hulp

PHP hulp

17/11/2024 15:39:21
 
Wouter J

Wouter J

18/06/2013 19:10:24
Quote Anchor link
Niet getest:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function rootParent(array $xs, $c) {
    if (isset($xs[$c])) {
        if (0 !== $x = $xs[$c]) {
            return rootParent($xs, $x);
        }


        return $c;
    }
}

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.