+ Rispondi alla Discussione
Risultati da 1 a 6 di 6

Ordinare array di array

Ultimo Messaggio di Anu il:
  1. #1
    Anu è offline
    User L'avatar di Anu
    Data Registrazione
    Nov 2012
    Località
    Padova
    Messaggi
    92

    Ordinare array di array

    Salve a tutti!

    Avrei bisogno di un consiglio tecnico...
    vorrei ordinare un array composto da vari campi:

    Codice:
    array(size=12)
          0 => object(stdClass)[4]          public 'idcat' => int 8 public 'dscLng' => string '' (length=0) public 'ordVis' => int 10      1 => object(stdClass)[5]          public 'idcat' => int 19 public 'dscLng' => string '' (length=0) public 'ordVis' => int 30      2 => object(stdClass)[6]          public 'idcat' => int 20 public 'dscLng' => string '' (length=0) public 'ordVis' => int 40
    vorrei appunto ordinare tale array per 'ordVis' prima di utilizzarlo in un foreach!Grazie in anticipo

  2. #2
    Moderatore L'avatar di lastrobt
    Data Registrazione
    Apr 2010
    Località
    Torino
    Messaggi
    530
    Segui lastrobt su Twitter
    Ciao anu,
    postresti cercare un algoritmo di ordinamento (merge sort o quicksort, ad esempio) ed implementarlo a dovere nel tuo codice. ;-)

  3. #3
    User L'avatar di codencode
    Data Registrazione
    Nov 2009
    Località
    Isernia
    Messaggi
    403
    Segui codencode su Twitter Aggiungi codencode su Google+ Aggiungi codencode su Facebook Aggiungi codencode su Linkedin Visita il canale Youtube di codencode
    Prova in questo modo (N.B. $array è l'array che vuoi ordinare):
    Codice PHP:
    $chiavi = array ();
    foreach ( 
    $array as $key=>$value ) {      
     
    $chiavi [$key] = $value['ordVis'];
    }
    array_multisort $chiaviSORT_ASC$array );
    print_r $array ); 
    Web agency | codencode.it | posizionamentositointernet.net

  4. #4
    User
    Data Registrazione
    Jun 2013
    Località
    Roma
    Messaggi
    980
    Hai bisogno di usort.
    Nel tuo esempio sono già ordinati comunque questo funziona


    Codice PHP:
    $a array(
    array(
    8,'',10),
    array(
    19,'',30),
    array(
    20,'',40)
    );

    function 
    cmp($a$b){
    if(
    $a[2] == $b[2])
    return 
    false;
    return (
    $a[2] < $b[2]) ? -1;
    }

    usort($a,"cmp");

    print_r($a); 

  5. #5
    Anu
    Anu è offline
    User L'avatar di Anu
    Data Registrazione
    Nov 2012
    Località
    Padova
    Messaggi
    92
    Grazie infinite,
    siete stati molto chiari e precisi!

    A buon rendere

  6. #6
    Anu
    Anu è offline
    User L'avatar di Anu
    Data Registrazione
    Nov 2012
    Località
    Padova
    Messaggi
    92
    Grazie a tutti per le risposte,
    quello che cercavo tuttavia era questo:

    Codice:
    <?php 
        $test = array(); 
        $test[0]['name'] = 'zoe'; 
        $test[0]['email'] = 'lala@example.com'; 
        $test[0]['phone'] = '123-123-1234'; 
        $test[0]['trick'] = 'mezopia'; 
    
    
        $test[1]['name'] = 'Amanda'; 
        $test[1]['email'] = 'hot@example.com'; 
        $test[1]['phone'] = '123-123-1235'; 
        $test[1]['trick'] = 'youarecool'; 
    
    
        $test[2]['name'] = 'john'; 
        $test[2]['email'] = 'wowee@example.com'; 
        $test[2]['phone'] = '123-123-3333'; 
        $test[2]['trick'] = 'goneinanhour'; 
    
    
        print_r(columnSort($test, 'name')); 
    
    
        function columnSort($unsorted, $column) { 
            $sorted = $unsorted; 
            for ($i=0; $i < sizeof($sorted)-1; $i++) { 
              for ($j=0; $j<sizeof($sorted)-1-$i; $j++) 
                if ($sorted[$j][$column] > $sorted[$j+1][$column]) { 
                  $tmp = $sorted[$j]; 
                  $sorted[$j] = $sorted[$j+1]; 
                  $sorted[$j+1] = $tmp; 
              } 
            } 
            return $sorted; 
        } 
        ?>
    trovato su php.net

    Spero possa servire ad altri!

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.