Daten sortieren => Wiederholung
Stahl Florian
- php
Hallo an alle,
Ich war im Urlaub und somit ist mein Thread http://forum.de.selfhtml.org/archiv/2006/8/t134692/#m876116 ins Archiv gerutscht. Ich möchte ihn aber nun gerne weiterführen.
Hier nochmal mein aktueller Code:
<?php
error_reporting(E_ALL);
$arr = Array();
$handle = fopen("daten/mitglieder.txt", "r");
while (($element = fgetcsv($handle, 1000, "~")) !== FALSE) {
$arr[$element[0]] = Array($element[1],$element[2],$element[3],$element[4],$element[5],$element[6],$element[7],$element[8],$element[9],$element[10]);
}
fclose($handle);
sort ($arr);
?>
Natürlich ist auch im Dokument noch ein echo mit drinnen. Welche Zahlen?
Mit freundlichen Grüssen
------------------------
Stahl Florian
------------------------
Hallo
Hier nochmal mein aktueller Code:
<?php
error_reporting(E_ALL);
$arr = Array();
$handle = fopen("daten/mitglieder.txt", "r");
while (($element = fgetcsv($handle, 1000, "~")) !== FALSE) {$arr[$element[0]] = Array($element[1],$element[2],$element[3],$element[4],$element[5],$element[6],$element[7],$element[8],$element[9],$element[10]);
Wie im alten Thread schonmal gefordert, solltest du einige Beispielzeilen deiner mitglieder.txt veröffentlichen, damit wir erkennen können, was jetzt (ab diesem Zeitpunkt des Skripts) in $arr steht und wie man das dann sortieren kann.
sort ($arr);
Und hier nochmal zum x-ten Mal: Du hast ein mehrdimansionales Array, welchem mit sort() nicht beizukommen ist.
Du solltest dir deinen alten Thread im Archiv noch mal zu Gemüte führen. Ich weiß ja nicht, was dort dazugekommen ist, nachdem du deinen Urlaub antratst.
Welche Zahlen?
Na ich hoffe doch. Am liebsten meine Kneipenrechnung.
Tschö, Auge
Hallo an alle,
Wie im alten Thread schonmal gefordert, solltest du einige Beispielzeilen deiner mitglieder.txt veröffentlichen, damit wir erkennen können, was jetzt (ab diesem Zeitpunkt des Skripts) in $arr steht und wie man das dann sortieren kann.
Stahl~Florian~teststrasse~9~123456 Nürnberg~09188-12345~-~0453-643455~stahl.florian@t-online.de~San
So sieht eine Zeile aus
Du solltest dir deinen alten Thread im Archiv noch mal zu Gemüte führen. Ich weiß ja nicht, was dort dazugekommen ist, nachdem du deinen Urlaub antratst.
Eben nichts, nur dass noch mal der aktuelle code gepostet werden soll und eine zeile aus meiner .txt
Mit freundlichen Grüssen
------------------------
Stahl Florian
------------------------
Hallo
Wie im alten Thread schonmal gefordert, solltest du einige Beispielzeilen deiner mitglieder.txt veröffentlichen, damit wir erkennen können, was jetzt (ab diesem Zeitpunkt des Skripts) in $arr steht und wie man das dann sortieren kann.
Stahl~Florian~teststrasse~9~123456 Nürnberg~09188-12345~-~0453-643455~stahl.florian@t-online.de~San
Und diese Programmzeilen ...
while (($element = fgetcsv($handle, 1000, "~")) !== FALSE) {
$arr[$element[0]] = Array($element[1],$element[2],$element[3],$element[4],$element[5],$element[6],$element[7],$element[8],$element[9],$element[10]);
}
... machen aus dieser Zeile:
$arr["Stahl"][0] = "Florian";
$arr["Stahl"][1] = "teststrasse";
$arr["Stahl"][2] = "9";
$arr["Stahl"][3] = "123456";
$arr["Stahl"][4] = "Nürnberg";
$arr["Stahl"][5] = "09188-12345";
$arr["Stahl"][6] = "-";
$arr["Stahl"][7] = "0453-643455";
$arr["Stahl"][8] = "stahl.florian@t-online.de";
$arr["Stahl"][9] = "San";
Ist das so gewollt?
Tschö, Auge
Hallo
Korrektur (sechsstellige(?) PLZ und Ort in einem Element):
$arr["Stahl"][0] = "Florian";
$arr["Stahl"][1] = "teststrasse";
$arr["Stahl"][2] = "9";
$arr["Stahl"][3] = "123456 Nürnberg";
$arr["Stahl"][4] = "09188-12345";
$arr["Stahl"][5] = "-";
$arr["Stahl"][6] = "0453-643455";
$arr["Stahl"][7] = "stahl.florian@t-online.de";
$arr["Stahl"][8] = "San";
Nochmal:
> Ist das so gewollt?
Tschö, Auge
--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
[Veranstaltungsdatenbank Vdb 0.1](http://termindbase.auge8472.de/)
Hallo an alle, »» Hallo
Korrektur (sechsstellige(?) PLZ und Ort in einem Element):
6 stellig nur als beisspiel.
$arr["Stahl"][0] = "Florian";
$arr["Stahl"][1] = "teststrasse";
$arr["Stahl"][2] = "9";
$arr["Stahl"][3] = "123456 Nürnberg";
$arr["Stahl"][4] = "09188-12345";
$arr["Stahl"][5] = "-";
$arr["Stahl"][6] = "0453-643455";
$arr["Stahl"][7] = "stahl.florian@t-online.de";
$arr["Stahl"][8] = "San";
>
> Nochmal:
> > Ist das so gewollt?
Eigentlich nicht. Es sollte ja nach den Nachnamen sortiert werden.
> Tschö, Auge
>
Mit freundlichen Grüssen
\------------------------
Stahl Florian
\------------------------
--
Das Leben ist hart, aber wir sind härter
Hallo
$arr["Stahl"][0] = "Florian";
$arr["Stahl"][1] = "teststrasse";
$arr["Stahl"][2] = "9";
$arr["Stahl"][3] = "123456 Nürnberg";
$arr["Stahl"][4] = "09188-12345";
$arr["Stahl"][5] = "-";
$arr["Stahl"][6] = "0453-643455";
$arr["Stahl"][7] = "stahl.florian@t-online.de";
$arr["Stahl"][8] = "San";
> >
> > > Ist das so gewollt?
>
> Eigentlich nicht. Es sollte ja nach den Nachnamen sortiert werden.
Dann beherzige meine [hiesige Einlassung](http://forum.de.selfhtml.org/archiv/2006/8/t134692/#m875197):
"Verwende "$arr[]", damit bei jedem Durchlauf von while, somit für jede Zeile der Datei, ein neues Element des Arrays angelegt wird."
Und da $data, bzw. jetzt $element sowieso schon ein Array ist, musst du dieses nichtmal "neu erschaffen".
nicht:
`$arr[$element[0]] = Array($element[1],$element[2],$element[3],$element[4],$element[5],$element[6],$element[7],$element[8],$element[9],$element[10]);`{:.language-php}
sondern:
`$arr[] = $element;`{:.language-php}
Damit liegt das Array $arr mit numerischem Index vor ($arr[0], $arr[1] ...). Jedes dieser Arrayelemente beinhaltet jeweils die Elemente einer Zeile deiner Textdatei. Jetzt (in Zeile 0) mit $arr[0][0] = "Stahl" bis $arr[0][9] = "San".
Da du, wie schon gesagt, ein mehrdimensionales Array hast, musst du auch eine Sortierfunktion für mehrdimensionale Array benutzen, die du samt und sonders im [Abschnitt Arrayfunktionen des PHP-Handbuchs](http://de3.php.net/manual/de/ref.array.php) findest.
Tschö, Auge
--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
[Veranstaltungsdatenbank Vdb 0.1](http://termindbase.auge8472.de/)
Hallo an alle,
Damit liegt das Array $arr mit numerischem Index vor ($arr[0], $arr[1] ...). Jedes dieser Arrayelemente beinhaltet jeweils die Elemente einer Zeile deiner Textdatei. Jetzt (in Zeile 0) mit $arr[0][0] = "Stahl" bis $arr[0][9] = "San".
Ich bekomm des einfach net hin. Es wird nur ArrayArray.. augegeben.
Da du, wie schon gesagt, ein mehrdimensionales Array hast, musst du auch eine Sortierfunktion für mehrdimensionale Array benutzen, die du samt und sonders im Abschnitt Arrayfunktionen des PHP-Handbuchs findest.
Das Sortieren hab ich erstmal noch weggelassen da ja noch nicht mal etwas ausgegeben wird.
Nochmal der aktuelle Code:
$handle = fopen("daten/mitglieder.txt", "r");
while (($element = fgetcsv($handle, 1000, "~")) !== FALSE) {
//Wenn der Vorname das erste Feld ist
$arr[] = $element;}
fclose($handle);
Mit freundlichen Grüssen
------------------------
Stahl Florian
------------------------
Hallo an alle,
Weis keiner mehr Rat von euch?
Mit freundlichen Grüssen
------------------------
Stahl Florian
------------------------