Sortieren

Nucleus

Erfahrenes Mitglied
HI,
habe ein frage bzg sort()

wie kann ich das am besten an einem array anwenden, wenn ich den inhalt in einer Datei stehen habe?Würde gerne nach der Anzahl sortieren


txt steht so drinnen
hallo|-|1|-|dghsdg
hallo|-|6-|dghsdg

mfg nucle
 
also einen array erstellen,
die datei in einer while schleife zeilenweise auslesen,
und den aktuellen wert der zeile neu anordnen zb:
$wert=$zeiger[1]."_".$zeiger[0]."_".$zeiger[2];
dann: array_push ($array, $wert);

nach der schleife bei der ausgabe den array sortieren und die einzelnen strings wieder voneinander trennen (mit explode)
 
Original geschrieben von danube
also einen array erstellen,
die datei in einer while schleife zeilenweise auslesen,
und den aktuellen wert der zeile neu anordnen zb:
$wert=$zeiger[1]."_".$zeiger[0]."_".$zeiger[2];
dann: array_push ($array, $wert);

nach der schleife bei der ausgabe den array sortieren und die einzelnen strings wieder voneinander trennen (mit explode)

Und $zeiger[1]
wäre dann also hallo, also mir $zeiger=explode("|",$file[$i]); oder ?

oder hab ich da was falsch verstanden?
(also davor natürlich noch ne for schleife)
 
Hmm habe schon einmal begonnen eines zu schreiben aber habe noch einen Fehler weiß jemand weiter ?

PHP:
$user = file("db/user.txt"); # wir lesen unsere Textdaten ein und haben erst mal ein Array

# $user[0] ist Hein|Blöd|12
# Bevor wir anfangen können zu sortieren müssen wir noch die einzelnen Felder haben.
for ($lo=0;$lo<sizeof($user);$lo++) {
 $usertab[$lo] = explode("|--|",$user[$lo]);



 } 
 
for ($lo=0;$lo<sizeof($user)-1;$lo++) { # die schleife berechnet sich nach der Grösse
# des eingelesenen Arrays
 if ($usertab[$lo][1] > $usertab[$lo+1][1])
 {  # wir bewerten den Nachnamen
    for($lox=0;$lox<4;$lox++)
    {
    $test = $usertab[$lo][$lox];
    
    echo"$test<br>";
   }
 }

}
# Rest sollte klar sein
 
hab dir das mal geschrieben:
PHP:
<?php
$anzahls_array = array();

$datei = fopen("user.txt","r");
while (!feof($datei)){
	$zeile = fgetcsv($datei,1000, ",");
	$wert=$zeile[1]."_".$zeile[0]."_".$zeile[2];
	array_push($anzahls_array,$wert);
	}
fclose($datei);

sort($anzahls_array);

foreach($anzahls_array as $blah){
    	$daten = explode ("_", $blah);
    	echo $daten[0]." ".$daten[1]." ".$daten[2]."<br>";
}

?>

hier die user.txt:
ts,4,dghsdg
hallo,1,dghsdg
hallo,6,dghsdg

wichtig ist dass du ein komma anstatt dem |-| als trennzeichen nimmst, sonst funzt das nicht, bei mir jedenfalls nicht...
 
hmmm habe es eion bischen modifiziert aber sortiert nicht ichtig
weißt du was falsch ist ?

PHP:
$anzahls_array = array();

$datei = "test.txt";
$inhalt = file($datei);
$inhalt = array_reverse($inhalt);
$anzahl = count($inhalt);
for($x=0;$x<$anzahl;$x++)
   {
    $zeile = explode ("|--|",$inhalt[$x]);
    $wert=$zeile[1]."_".$zeile[0]."_".$zeile[2];
    array_push($anzahls_array,$wert);
   }

 
sort($anzahls_array);

foreach($anzahls_array as $blah){
       
        $daten = explode ("_", $blah);
        echo $daten[0]." ".$daten[1]." ".$daten[2]."<br>";
}
 
Zurück