tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 2 Beitrag von Yaslaw
  • 1 Beitrag von Flex
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
263
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    Registriert seit
    Nov 2007
    Beiträge
    255
    Hallo,

    ich weiß das thema ist nicht selten und es gibt auch anleitungen, doch leider finde ich nicht genau das was ich suche (evtl. falsche suchtechnik)

    ich habe hier ein array:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    
    Array
    (
        [AU01001] => Array
            (
                [kunde] => edv-baer
                [referenz] => 2011-01-18
                [artikel] => Bier
                [termin] => 20114
                [erledigt] => false
                [info] => 
                [item] => Array
                    (
                        [item] => Barcodescanner
                        [number] => 2
                        [erledigt] => false
                    )
     
            )
     
        [AU01002] => Array
            (
                [kunde] => edv-baer
                [referenz] => 2011-01-18
                [artikel] => Leberkäse
                [termin] => 20115
                [erledigt] => false
                [info] => test
                [item] => Array
                    (
                        [item] => SafetyDoc
                        [number] => 1
                        [erledigt] => false
                    )
     
            )
     
        [AU01003] => Array
            (
                [kunde] => edv-baer
                [referenz] => 2011-01-18
                [artikel] => Weißwürste
                [termin] => 20112
                [erledigt] => false
                [info] => 
                [item] => Array
                    (
                        [item] => Barcodescanner
                        [number] => 1
                        [erledigt] => false
                    )
     
            )
     
    )

    in diesen fall würde das bedeuten, oben ist AU01003 dann kommt AU01001 zuletzt, AU01002.

    irgendwie versteh ich das nicht, ich möchte das array jetzt nach termin sortieren gibt es da eine möglichkeit?

    danke
     

  2. #2
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Dafür wirst du dir eine eigene Sortierfunktion basteln müssen. Schau da mal bei usort() vorbei.

    Und achte bitte mehr auf deine Groß- und Kleinschreibung.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  3. #3
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    Registriert seit
    Nov 2007
    Beiträge
    255
    ja, aber wie komme ich in die einzelnen ebenen? evtl. ein beispiel? weil wenn ich sortiere dann entweder die ganze obere Kategorie oder eben die Unterkategorie, aber wie kann ich die Oberkategorien nach nen wert in der Unterkategorie sortieren?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Genau das habe ich vor längerer Zeil mal gelöst: http://wiki.yaslaw.info/wikka/PhpArr...BySubarrayItem

    PHP-Code:
    sortBy($array'termin');
    var_dump($array);

    function 
    sortBy(&$array$key$direction SORT_ASC$sort_flags SORT_REGULAR){
        
    $factor = ($direction ==SORT_DESC) ? -1;
        if(
    is_numeric($key)){
            
    $convert '$a = array_values($a); $b = array_values($b);';
            
    $a "\$a[{$key}]";     $b "\$b[{$key}]";
        } else {
            
    $convert "";
            
    $a "\$a['{$key}']";   $b "\$b['{$key}']";
        }
        switch(
    $sort_flags){  
            case 
    SORT_NUMERIC:
                
    $function "({$a} == {$b}) ? 0 : ({$a} > {$b}) ? -1 : 1";
                break;      
            case 
    SORT_REGULAR:
            case 
    SORT_STRING:
            default:
                
    $function "strcmp({$a}{$b})";
        }
        
    $function "{$convert} return $factor * ($function);";
        return 
    uasort($arraycreate_function('$a, $b'$function));    

    Geändert von Yaslaw (19.01.11 um 16:48 Uhr) Grund: Hab eine Änderung in meinem Wiki vorgenommen und musste darum den Link ändern
    Flex und JesusFreak777 bedanken sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    Registriert seit
    Nov 2007
    Beiträge
    255
    wow, danke,... das funktioniert.

    Jetzt habe ich trotzdem noch ein Problem. Wie kann ich jetzt das Array ausgeben?

    ich möchte gerne eine forschleife basteln in der ich dann das Array automatisiert ausgebe.

    for(.....)
    {

    $meinarray[ebene1[$i][spalte1] - $meinarray[ebene1[$i][spalte2],...

    }

    aber was ist ebene1 mit $meinarray[0] kommt nichts sinnvolles raus.

    danke
     

  6. #6
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Lass dir das Array doch einfach mal ausgeben mit print_r(). Dann kannst du dir die Struktur anschauen.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  7. #7
    JesusFreak777 JesusFreak777 ist offline Mitglied Brokat
    Registriert seit
    Nov 2007
    Beiträge
    255
    ja, naja das habe ich ja gemacht, sieht aus wie oben,...

    z.B.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    
    Array
    (
        [AU01001] => Array
            (
                [kunde] => edv-baer
                [referenz] => 2011-01-18
                [artikel] => Bier
                [termin] => 20114
                [erledigt] => false
                [info] => 
                [item] => Array
                    (
                        [item] => Barcodescanner
                        [number] => 2
                        [erledigt] => false
                    )
     
            )
     
        [AU01002] => Array
            (
                [kunde] => edv-baer
                [referenz] => 2011-01-18
                [artikel] => Leberkäse
                [termin] => 20115
                [erledigt] => false
                [info] => test
                [item] => Array
                    (
                        [item] => SafetyDoc
                        [number] => 1
                        [erledigt] => false
                    )
     
            )
     
        [AU01003] => Array
            (
                [kunde] => edv-baer
                [referenz] => 2011-01-18
                [artikel] => Weißwürste
                [termin] => 20112
                [erledigt] => false
                [info] => 
                [item] => Array
                    (
                        [item] => Barcodescanner
                        [number] => 1
                        [erledigt] => false
                    )
     
            )
     
    )

    in diesen Fall müsste ich jetzt z.B. $meinarray['AU01001'] eingeben aber AU01001 ist für mich eine unbekannte und nicht forschleifentauglich da auch nummern übersprungen werden können,...

    gibt es nicht wie beim normalen Array jetzt (nach der Sortierung) irgend sowas wie stelle 0 - x (x = count($meinarray) - 1)

    grüße
     

  8. #8
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Dann nimm doch foreach().
    JesusFreak777 bedankt sich. 
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

Ähnliche Themen

  1. Sortierung ((mehrdimensionales-array)
    Von spermana im Forum PHP
    Antworten: 2
    Letzter Beitrag: 02.02.09, 16:09
  2. Hilfe: Array Sortierung
    Von Sony2000 im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 07.01.08, 15:44
  3. Sortierung mit Array
    Von DeeJay-Luke im Forum PHP
    Antworten: 1
    Letzter Beitrag: 27.09.06, 12:47
  4. Array Sortierung
    Von grkpfl im Forum PHP
    Antworten: 2
    Letzter Beitrag: 21.01.05, 12:16
  5. Sortierung Array & DB gleichzeitig ...
    Von Individuum im Forum PHP
    Antworten: 6
    Letzter Beitrag: 03.06.04, 18:53

Stichworte