Loading:


    Sortowanie tablicy wielowymiarowej - zaawansowany przykład

    Skrypt sortuje tablicę wielowymiarową, według podanego przez nas klucza.

     

    Przypuśćmy, że mamy tablicę, która posiada elementy będące również tablicami ale asocjacyjne. Dzięki temu skrypcie, będziecie mogli posortować tablice asocjacyjne według klucza.

     

    Przykład:

     

    $grupaLudzi1 = array (klucz_id=>"MWZ", imie1=>"Marian", imie2=>"Włodek", imie3=>"Zbyszek");
    $grupaLudzi2 = array(klucz_id=>"ALP", imie1=>"Anonim", imie2=>"Lolkowki", imie3=>"Paździch");

    $tablicaGlowna = array($grupaLudzi1, $grupaLudzi2);

     

    Rozwiązanie:

     

    sortujTabliceWielowymiarowa($tablicaGlowna, array('klucz_id'=>SORT_ASC));

     

    zwróci:

    Array
    (
    [1] => Array
    (
    [klucz_id] => ALP
    [imie1] => Anonim
    [imie2] => Lolkowki
    [imie3] => Pazdzich
    )

    [0] => Array
    (
    [klucz_id] => MWZ
    [imie1] => Marian
    [imie2] => Wlodek
    [imie3] => Zbyszek
    )



    Napisz Artyku³

    Listing

    public function sortujTabliceWielowymiarowa($array, $cols) {
              $colarr = array();
              foreach ($cols as $col => $order) {
               $colarr[$col] = array();
               foreach ($array as $k => $row) { $colarr[$col]['_'.$k] = strtolower($row[$col]); }
              }
              $eval = 'array_multisort(';
              foreach ($cols as $col => $order) {
               $eval .= '$colarr[\''.$col.'\'],'.$order.',';
              }
              $eval = substr($eval,0,-1).');';
              eval($eval);
              $ret = array();
              foreach ($colarr as $col => $arr) {
               foreach ($arr as $k => $v) {
                    $k = substr($k,1);
                    if (!isset($ret[$k])) $ret[$k] = $array[$k];
                    $ret[$k][$col] = $array[$k][$col];
               }
              }
              return $ret;
             
             }




    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
    Gdyby tak prostszy przykład.
    autor: jurek123 | 12618 | 2011-10-26 20:02:37


      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors