tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
235
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    wydy wydy ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    10
    Moin,
    ich habe ein Array mit mehreren Werten. Jetzt möchte ich diese Werte auf 4 Spalten sortieren. Jedoch fällt mir zurzeit nicht ein, wie ich das genau realisieren kann. Hier mal ein kleines Beispiel wie ich mir das Resultat vorstelle:
    Code :
    1
    2
    3
    4
    
    A    E    I    M
    B    F    J    N
    C    G    K
    D    H    L
    Ich weiss, dass es irgendwie mit modulo und einer for Schleife funktioniert, aber leider bekomme ich es nicht hin.
     

  2. #2
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Einer der richtigen Profis kommt sicher zu einer schöneren (besseren) Lösung, ich hab sowas hier:

    PHP-Code:
    $array = array ( 'b''j''e''m''l''z''d''n''g''i''a''k''c' );

    sort $array ); // array sortieren

    $r 0// zähler starten

    for ( $i 0$i count $array ); $i++ )
    {
    $r++;

        if ( 
    $r == )
        {
            
    $r 1;
        }
        
        
    $new_array[$r][] = $array[$i]; // neues array bauen

    Gibt folgendes:
    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
    
    array(4) {
      [1]=>
      array(4) {
        [0]=>
        string(1) "a"
        [1]=>
        string(1) "e"
        [2]=>
        string(1) "k"
        [3]=>
        string(1) "z"
      }
      [2]=>
      array(3) {
        [0]=>
        string(1) "b"
        [1]=>
        string(1) "g"
        [2]=>
        string(1) "l"
      }
      [3]=>
      array(3) {
        [0]=>
        string(1) "c"
        [1]=>
        string(1) "i"
        [2]=>
        string(1) "m"
      }
      [4]=>
      array(3) {
        [0]=>
        string(1) "d"
        [1]=>
        string(1) "j"
        [2]=>
        string(1) "n"
      }
    }

    Wolltest das so?
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  3. #3
    Avatar von maeTimmae
    maeTimmae maeTimmae ist offline Mitglied Platin
    Registriert seit
    Aug 2007
    Ort
    Erfurt, Saarbrücken, Leipzig und Fulda
    Beiträge
    515
    Zitat Zitat von Loomes Beitrag anzeigen
    Einer der richtigen Profis kommt sicher zu einer schöneren (besseren) Lösung, ich hab sowas hier:

    PHP-Code:
    $array = array ( 'b''j''e''m''l''z''d''n''g''i''a''k''c' );

    sort $array ); // array sortieren

    $r 0// zähler starten

    for ( $i 0$i count $array ); $i++ )
    {
    $r++;

        if ( 
    $r == )
        {
            
    $r 1;
        }
        
        
    $new_array[$r][] = $array[$i]; // neues array bauen

    Ist von der Umsetzung schon richtig. Effizienter wäre es aber in etwa so:
    PHP-Code:
    <?php

    $range            
    range'a''n');
    $rangeLength    count$range );
    $columnCount    4;

    $new = array();

    for ( 
    $i 0$i $rangeLength; ++$i ) {
        
    $new$i $columnCount ][] = $range$i ];
    }

    var_dump$new );
    Wenn man Geschwindigkeitsfetischist ist, kann man über
    PHP-Code:
    foreach ( $range as $key => &$current ) {
        
    $new$key $columnCount ][] = $current;

    nochmal einiges rausholen.

    Das Resultat ist identisch.
     

  4. #4
    Avatar von Loomis
    Loomis Loomis ist offline Mitglied Bunt
    Registriert seit
    Jul 2002
    Ort
    Aschaffenburg
    Beiträge
    1.538
    Ich sehe grade das passt noch nicht ganz, in seinem Beispiel will er ja 3*4 und 1*2. Wir sind bei 1*4 und 3*3. Nochmal bischen basteln
     
    mfg
    --------------------------------------------------------------------------------
    Kein Support via PN, Email, ICQ, Brieftaube oder Flaschenpost!

    Besucht den tutorials.de-Chat | Anleitung
    RTFM - PHP-Handbuch - MySql Handbuch
    --------------------------------------------------------------------------------
    Surftipp...Der Postillon
    --------------------------------------------------------------------------------
    Signatur v2.2

  5. #5
    wydy wydy ist offline Mitglied
    Registriert seit
    Jun 2006
    Beiträge
    10
    Danke für die Hilfe. So funktioniert es
    Hätte eigentlich auch selber darauf kommen sollen, die Werte in ein neues Array zu speichern. Hab mich wohl zu sehr bemüht das ganze mit einer Modulo Funktion zu lösen.
    Es ist nicht schlimm, dass die Werte nicht so wie in meinem Beispiel sortiert sind. Geht mir nur darum, dass alle Werte auf 4 Spalten verteilt sind.
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 24.09.08, 00:10
  2. Nach 2 Spalten sortieren
    Von dwex im Forum Relationale Datenbanksysteme
    Antworten: 7
    Letzter Beitrag: 28.04.06, 14:28
  3. Sortieren von Spalten (MySQL)
    Von double_0 im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 24.05.05, 08:03
  4. ListView - Spalten sortieren
    Von meto im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 23.11.04, 09:48
  5. Antworten: 1
    Letzter Beitrag: 08.01.03, 22:10