filtern und sortieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • filtern und sortieren

    hallo leute..!

    ich habe einen string, welcher so aussieht:

    Code:
    ###11##16#14#1998#22#33###1#4#77#...
    den ich so:

    PHP-Code:

    $list 
    preg_replace("/^#+/"""$list);
        
    $ids preg_split("/#{1,}/"$list); 
    in ein array umwandle, in dem immer nur die zahlen stehen.. (funktiniert wunderbar..)

    und so:

    PHP-Code:

    $names 
    $ids;

    for (
    $i 0$i <= count($ids) -1$i++)
    {
        
    $names[$i] = get_name($names[$i]);                        

    bekomme ich die namen, welche hinter den ids stecken.. (funktioniert auch noch..)

    und so:

    PHP-Code:

    sort
    ($friends); 
    möchte ich das array alphabetisch sortieren..

    bei folgenen namen:

    Code:
    Wieselburger, Hirnriss, Dorsi, Freudi, gerdy6, Michi, Susi2000 und Beda
    sieht das das sortierte array allerdings so aus:

    Code:
    Array ( [0] => Beda [1] => Dorsi [2] => Freudi [3] => Hirnriss [4] => Michi 
    [5] => Susi2000 [6] => Wieselburger [7] => gerdy6 )

    meine frage nun an euch: wieso ist gerdy6 nicht nach: "freudi"..?!



    vielen dank im voraus..!- lg, harry d.
    Zuletzt geändert von icon; 02.05.2004, 13:44.

  • #2
    versuchs mal mit
    PHP-Code:
    natsort(); 

    Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

    Kommentar


    • #3
      auf die idee bin ich auch gekommen: -> selbes ergeniss..!


      lg, harry d.

      Kommentar


      • #4
        Machste alle Anfangsbuchstaben klein oder groß und dann passt das auch wieder. Da zuerst nach A-Z und danach a-z sortiert wird.
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          hey.. danke..!- diese kleinigkeit habe ich echt vergessen und mich schon die ganze zeit gefragt, warum er das so macht..


          vielen dank noch einmal..!- lg, harry d.

          Kommentar


          • #6
            hmm.. irgendwie habe ich gerade keine idee, wie man das problem am besten löst..!

            angenommen es gibt die namen:

            Code:
            harRy, GerdY, bEDA,..
            und ich mach sie mit:

            PHP-Code:

            strtoupper
            () 
            alle zu:

            Code:
            HARRY, GERDY, BEDA,..
            um sie richtig zu sortieren..


            wie kann ich dann nachträglich wieder bewirken, dass im array nicht "HARRY" sondern "harRy" steht..?!


            hat da jemand eine idee..?!- ich bin für alles dankbar..!


            lg, harry d.

            Kommentar


            • #7
              natcasesort(); ist dein freund.
              Kissolino.com

              Kommentar


              • #8
                vielen dank erst einmal, wurzel..!

                es ist wirklich mein freund..

                aber: sort() würde aus einem array mit:

                Code:
                gerdy, harry, beda
                das machen:

                Code:
                Array ( [0] => beda [1] => gerdy [2] => harry)
                natcasesort() ordnet es zwar richtig, lässt aber den index gleich

                Code:
                Array ( [0] => beda [2] => gerdy [1] => harry)

                kann man das irgendwie kombinieren oder muss ich mir da jetzt selber einen algorithmus einfallen lassen..?!


                danke!- lg, harry d.

                Kommentar


                • #9
                  warum? mit foreach() kannst du das array genausogut weiterbearbeiten
                  und wenn du den index als zähler verwenden willst, lass bei forech einfach
                  einen mitlaufen.

                  ansonsten:
                  PHP-Code:
                  natcasesort($array);
                  foreach(
                  $array as $k)
                      
                  $out[] = $k;
                  print_r($out); 
                  Kissolino.com

                  Kommentar


                  • #10
                    da hast du natürlich recht..!


                    danke..!!!



                    lg, harry d.

                    Kommentar

                    Lädt...
                    X