Sortierung eines Arrays?

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

  • Sortierung eines Arrays?

    Hallo zusammen,

    ich mochte ein Array mit deutschen Strings($values) nach den entsprechenden engl. Ausdrücken sortieren. Hört sich komisch an, I know.
    In einer Tabelle type_translation stehen in einer Zeile der deutsche(de) und der entsprechende englische(en) String.

    PHP-Code:
    function cmp ($a) {
       
    $tmp_value mysql_fetch_array(mysql_query
              
    ("select en from type_translation where de like '$a'"));
       return 
    $tmp_value[en];
    }

    usort ($values"cmp"); 
    So geht das nicht.
    Wie kann ich an die Funktion den deutschen Wert übergeben?
    Hat mir jemand einen Tipp?

    Grüße
    untangler
    Zuletzt geändert von untangler; 12.04.2005, 06:07.

  • #2
    ersteinmal brichst du die lange zeile um, damit man nicht scrollen musst.

    sortiert wir noch in dem sql-statement, und zwar mit ORDER BY.

    Kommentar


    • #3
      Die cmp-Funktion kriegt die Beiden Werte übergeben, die verglichen werden sollen, und gibt -1, 0 oder 1 zurück. Je nachdem ob der erste kleiner, beide gleich, oder der erste größer ist.

      usort
      hopka.net!

      Kommentar


      • #4
        @penizilin: Okay, ich habe ein "order by en" eingefügt, aber das bringt nix.

        @Hopka: Wie die beiden Werte, welche beiden Werte?

        Ich glaube das funktioniert so nicht mit usort.
        Vermutlich muss ich mir was anderes überlegen.

        Trotzdem danke für die Hinweise.

        Kommentar


        • #5
          hilft doch manchmal. Nu geht's.
          PHP-Code:
          function cmp ($a$b) {
             
          $tmp_a mysql_fetch_array(mysql_query
                    
          ("select en from screens_translation where de like '$a'"));
             
          $tmp_b mysql_fetch_array(mysql_query
                   
          ("select en from screens_translation where de like '$b'"));
             if (
          $tmp_a[en] > $tmp_b[en]) return 1;
             if (
          $tmp_a[en] == $tmp_b[en]) return 0;
             return -
          1;

          Danke für eure Hilfe.
          Zuletzt geändert von untangler; 12.04.2005, 08:15.

          Kommentar


          • #6
            Jetzt musst du nur noch die SQL-Queries aus der Funktion entfernen, weil das ganz und gar nicht gut ist, so viele Queries in so kurzer Zeit zu machen.
            hopka.net!

            Kommentar

            Lädt...
            X