Stahl Florian: Daten sortieren => Wiederholung

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
------------------------

--
Das Leben ist hart, aber wir sind härter
  1. 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

    --
    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
    1. 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
      ------------------------

      --
      Das Leben ist hart, aber wir sind härter
      1. 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

        --
        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
        1. 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/)
          
          1. 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
            
            1. 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/)
              
              1. 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
                ------------------------

                --
                Das Leben ist hart, aber wir sind härter
                1. Hallo an alle,

                  Weis keiner mehr Rat von euch?

                  Mit freundlichen Grüssen
                  ------------------------
                  Stahl Florian
                  ------------------------

                  --
                  Das Leben ist hart, aber wir sind härter