rekursives Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rekursives Problem

    Hallo,

    ich bekomme folgendes Array aus einer DB geliefert:
    (Nur ein Auszug, das Array ist multidimensional)
    PHP-Code:
    Array
    (
        [
    childs] => Array
            (
                [
    1588] => Array
                    (
                        [
    id] => 1588
                        
    [name] => val1
                        
    [parent] => 0
                        
    [childs] => Array
                            (
                                [
    2107] => Array
                                    (
                                        [
    id] => 2107
                                        
    [name] => va1.1
                                        
    [parent] => 1588
                                    
    )

                                [
    2551] => Array
                                    (
                                        [
    id] => 2551
                                        
    [name] => val1.2
                                        
    [parent] => 1588
                                    
    )

                                [
    2744] => Array
                                    (
                                        [
    id] => 2744
                                        
    [name] => val1.3
                                        
    [parent] => 1588
                                    
    )
                [
    622] => Array
                    (
                        [
    id] => 622
                        
    [name] => val3
                        
    [parent] => 0
                    
    )

                [
    647] => Array
                    (
                        [
    id] => 647
                        
    [name] => val4
                        
    [parent] => 0
                        
    [childs] => Array
                            (
    ... 
    Dieses versuche ich mit der folgenden Funktion eingerückt auszugeben.
    Nur leider wird mir der komplette Block mit val1, val4, etc. zweimal ausgegeben.
    PHP-Code:
    function buildHTMLString($arrTree,$intSpace)
    {
        while (list(
    $key$value) = each ($arrTree)) 
        {
            if(
    is_array($value))
            {
                
    $intSpace=$intSpace+2;
                
    buildHTMLString($value,$intSpace);
            }
            else
            {
                if(
    $key=="name")
                {
                    for(
    $i=0;$i<$intSpace;$i++)
                    {
                        echo 
    "&nbsp;";
                    }
                    echo 
    $value."<br>";
                }
            }
        }

    Kann mir jemand auf die Sprünge helfen, warum das jew. Unter-Array, sobald es Childs hat, zwei mal ausgegeben wird bzw. wie ich es verhindern kann?

    Poscht

  • #2
    Danke an alle, die es gelesen haben, das Problem hat sich erledigt.
    Der Block muss natürlich so aussehen.

    PHP-Code:
    intSpace=$intSpace+2;
    $tmpArr=$value;
    $arrTree[$key]="";
    buildHTMLString($tmpArr);
    $intSpace=$intSpace-2

    Kommentar

    Lädt...
    X