Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 02-08-2007, 16:12
Poscht
 Newbie
Links : Onlinestatus : Poscht ist offline
Registriert seit: Feb 2007
Beiträge: 31
Poscht ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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
Mit Zitat antworten