[PHP] Sortierung eines Arrays klappt nicht

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Flyde, 16. Juni 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 16. Juni 2010
    Sortierung eines Arrays klappt nicht

    Hi,

    ich hab gerade das gefühl ich spinne... ich versuche gerade ein stinknormales eindimensionales array zu sortieren und es klappt einfach nicht oO

    Ich schmeiß aus 2 Tabellen die ergebnisse in ein Array und will sie sortiert ausgeben (gibt es einen sql weg 2 spalten aus 2 tabellen zu einer neuen spalte zu machen und zu sortieren?)

    PHP:
        <?php
        $qry 
    "SELECT kunden.Firma1, kunden.Firma2 FROM kunden WHERE Aktiv = 1" ;
        foreach(
    $objDb -> Query ( $qry ) as  $res )
        {
            
    $sort [] =  $res [ 'Firma1' ]. ' ' . $res [ 'Firma2' ];
        }
        
        
    $qry  "SELECT lieferanten.Firma1, lieferanten.Firma2 FROM lieferanten WHERE Aktiv = 1" ;
        foreach(
    $objDb -> Query ( $qry ) as  $res )
        {
            
    $sort [] =  $res [ 'Firma1' ]. ' ' . $res [ 'Firma2' ];
        }
        
        
    natsort ( $sort );

        echo 
    '<pre>' ;
        
    print_r ( $sort );
        echo 
    '</pre>' ;
        
    ?>
    Code:
    Array
    (
     [0] => TK-02 TK-ZN-02
     [1] => abc ab
     [2] => test test123
    )
    
    hab natsort, sort, asort,... getestet, alles hat es unsortiert gelassen, spinn ich? bin ich gerade einfach zu müde? lol...
     
  2. 16. Juni 2010
    AW: Sortierung eines Arrays klappt nicht

    Warum sortierst du nicht gleich im SQL Query nach Firma1 und Firma2? Mit CONCAT kannst du in Mysql Strings miteinander verknüpfen.
     
  3. 16. Juni 2010
    AW: Sortierung eines Arrays klappt nicht

    Ich zeig dir mal was aus Python, vielleicht hilft es dir (oder öffnet dir die Augen)

    PHP:
    = [ "TK-02 TK-ZN-02" "abc ab" "test test123" ]
    l . sort ()
    print(
    l )
    [
    'TK-02 TK-ZN-02' 'abc ab' 'test test123' ]
    = [ "tk-02 TK-ZN-02" "abc ab" "test test123" ]
    l . sort ()
    print(
    l )
    [
    'abc ab' 'test test123' 'tk-02 TK-ZN-02' ]
    Dazu noch dieses:
    ASCII-Tabelle

    greez

    //in Python kannst du das sehr leicht umgehen mit
    l.sort(key = str.lower)

    Damit wird jedes Element vor dem Vergleich durch str.lower() gejagt, d.h. dass Groß- und Kleinschreibung keine Rolle mehr spielt.
     
  4. 16. Juni 2010
    AW: Sortierung eines Arrays klappt nicht

    warum -> ich hab die frage gestellt ob es geht danke

    ach .. ich hab tatsächlich geschlafen, weisst du.. ich hatte assembler und hab schon sortierungen geschrieben, da gehts ohne ascii werte garnich danke euch beiden
     
  5. 16. Juni 2010
    AW: Sortierung eines Arrays klappt nicht

    aber für diesen fall hat php auch schon was natives parat:
    PHP:
    <? php
    $array 
    = array( 'TK-02 TK-ZN-02' 'abc ab' 'test test123' );

    //regulär sortieren:
    print  'sort<br />' ;
    sort ( $array );
    print_r ( $array );  // 'TK-02 TK-ZN-02', 'abc ab', 'test test123'  :(

    print  '<br /><br />' ;

    //"natual order" algo:
    print  'natcasesort<br />' ;
    natcasesort ( $array );
    print_r ( $array );  // 'abc ab', 'test test123', 'TK-02 TK-ZN-02'  :)
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.