Andreas Korthaus: sortieren einer $var

Beitrag lesen

Hi!

sort;
reset;
while (list ($key, $val) = each ($var)) {
echo "$var"; }

Das sieht doch gut aus,

doch nicht ganz, Du brauchst :
while (list ($key, $val) = each ($var)) {
    echo "$val";
}

Ups, müsste ja anders heißen: (bei sort und reset)

if($var=="..") { echo ""; }

wieso das? Wieso gibst Du überhaupt was aus? Und was ist bei "." oder Dateinamen?

else {
$var = array("$var");
sort ($var);
reset ($var);
while (list ($key, $val) = each ($var)) {
echo "$val[$key]<br>";

Das ist falsch. Das heißt genau so wie ich es oben geschrieben habe.

Also das $var zeigt er mir korrekt an, nur zeigt er mir nicht das als sortiert an.

Kommt drauf an wo Du var_dump($var) hinschreibst. Theoretrisch müßte es vorher unsortiert und danach sortiert angezeigt werden.

$var = array("ordner1", "ordner2", "ordner3");

Und müsste mir eigentlich folgendes rausschmeißen
(wenn ich es mit: echo "ordner[".$key."] = ".$val."; abfrage):

ordner[0] = ordner1
ordner[1] = ordner2
ordner[2] = ordner3

Das macht das Array auch so, wenn ich ihm es direkt sage
($var = array("ordner1", "ordner2", "ordner3");).
Nur möchte ich da eine Variable einsetzen, also $var.
Und wenn ich dann die Abfrage stelle
($var = array("$var");)

Das verstehe ich nicht. Was willst Du für eine Variabe einsetzen, wofür einsetzen? Ich sehe noch nicht wo Du überhaupt einen Array erzeugst. Du gibst die Daten nur in der Schleife mit echo aus. Das bringt Dir nichts, Du mußt die Daten in der Schleife in einen Array schreiben, mal ein abgewandeltes Beispiel von http://php3.de/manual/de/function.readdir.php:
<?php
$handle=opendir('.');
while ($file = readdir ($handle)) {
    if ($file != "." && $file != "..") {
        //echo "$file\n";    <- das machst Du
        $verzeichnis_array[] =  $file; // <- so schreibst Du alles in einen Array
    }
}
closedir($handle);
?>

Dann hst Du in $verzeichnis_array einen Array mit den einzelnen Einträgen dieses Verzeichnisses stehen.

$var = array("$var") damit erstellst Du einen Array mit einem Element und zwar mit dem ehemaligen $var als Element wenn das ein string ist ist dieses Element halt ein String, wenn $var vorher schon ein Array war dann ist dieser Array das eine Element vom neuen $var, Du hast also einen mehrdimensionalen Array, was Du nicht willst. Den Array wie ich ihn oben erzeugt habe kannst Du direkt sortieren.

Grüße
Andreas