Warum zählt die Variable nicht richtig hoch?

TelMute

Grünschnabel
Hallo Forum,

ich habe mir eine Art Treeview gebaut, das aus einer Verzeichnisstruktur gefüllt wird.
Das klappt soweit auch, aber zu den Verzeichnisnamen würde ich mir gern noch weitere Infos in einem Array merken.
Jetzt bin ich an dem Punkt, an dem es fast klappt, bloss die Variable $lnInt wird falsch hochgezählt.
die Variable nimmt nicht die Werte 1, 2, 3, etc. an, sondern 1, 2, 3, 3, 4, 4 ?
Wie kommt das denn?
PHP:
<?php
$Pfad = dirname($_SERVER["SCRIPT_FILENAME"]);

echo '<p>Start-Pfad: '.$PHP_SELF.'</p>';
echo '<p>Deine IP: '.$REMOTE_ADDR.'</p>';

myTree($Pfad);

Function myTree($Ordner, $TabStop = 0, $lnInt = 1) {
	$laMatrix = array();
	$OrdnerHandle = opendir($Ordner);

	while ($OrdnerItm = readdir ($OrdnerHandle)) {
		if($OrdnerItm != "." && $OrdnerItm != ".." && $OrdnerItm != "img" && $OrdnerItm != "tpl") {
			if(is_dir($Ordner."/".$OrdnerItm)) {

				$laMatrix[$lnInt][0] = "$Ordner/$OrdnerItm";
				$laMatrix[$lnInt][1] = "$lnInt";
				$laMatrix[$lnInt][2] = "D";

				$lnInt++;

				myTree($Ordner."/".$OrdnerItm, $TabStop + 20, $lnInt);
			}
		}
	}
	closedir($OrdnerHandle);

	echo '<html>';
	echo '<head>';
	echo '<title>Kein Titel</title>';
	echo '</head>';
	echo '<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">';
	
	foreach($laMatrix as $VarX) {
		if ($VarX[1] > 0) {
			echo '<p style="margin:0;">Ordner: '.$VarX[0].'</p>';
			echo '<p style="margin:0;">Nr.: '.$VarX[1].'</p>';
			echo '<p style="margin:0;">Art: '.$VarX[2].'</p>';
			echo '<p style="margin:0;">---------------------------------------------------</p>';
		}
	}
	echo '</body>';
	echo '</html>';

}
?>

... und eine zweite Frage: Wie kann ich das Array nach
PHP:
$laMatrix[$lnInt][1] = "$lnInt";
sortieren lasssen?
 
Hallo,
das sollte dein erstes Problem lösen.
PHP:
<?PHP
$Pfad = dirname($_SERVER["SCRIPT_FILENAME"]);

echo '<p>Start-Pfad: '.$PHP_SELF.'</p>';
echo '<p>Deine IP: '.$REMOTE_ADDR.'</p>';

myTree($Pfad);

Function myTree($Ordner, $TabStop = 0, $lnInt = 1) {
    $laMatrix = array();
    $OrdnerHandle = opendir($Ordner);
    while ($OrdnerItm = readdir ($OrdnerHandle)) {
        if($OrdnerItm != "." && $OrdnerItm != ".." && $OrdnerItm != "img" && $OrdnerItm != "tpl") {
            if(is_dir($Ordner."/".$OrdnerItm)) {

                $laMatrix[$lnInt][0] = "$Ordner/$OrdnerItm";
                $laMatrix[$lnInt][1] = "$lnInt";
                $laMatrix[$lnInt][2] = "D";
				$lnInt++;

                $lnInt=myTree($Ordner."/".$OrdnerItm,($TabStop + 20), $lnInt);//weist $lnlnt den neuen Wert zu.
            }
        }
    }
    closedir($OrdnerHandle);

    echo '<html>';
    echo '<head>';
    echo '<title>Kein Titel</title>';
    echo '</head>';
    echo '<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">';

    foreach($laMatrix as $VarX) {
        if ($VarX[1] > 0) {
            echo '<p style="margin:0;">Ordner: '.$VarX[0].'</p>';
            echo '<p style="margin:0;">Nr.: '.$VarX[1].'</p>';
            echo '<p style="margin:0;">Art: '.$VarX[2].'</p>';
            echo '<p style="margin:0;">---------------------------------------------------</p>';
        }
    }
    echo '</body>';
    echo '</html>';
	return $lnInt;//gibt den Aktuellen Wert zurück.

}
?>
Auf die 2 Frage weiß ich leider keine Antwort.
 
Zuletzt bearbeitet:
Zurück