Visualizzazione dei risultati da 1 a 5 su 5

Discussione: come ordinare questo?

  1. #1

    come ordinare questo?

    dato l'array
    codice:
    nomearray["chiave1"]["chiave2"]["chiave3"]
    con chiave2 "int" e chiave uno "text".

    come ordianare in base a chiave2 discendente e a chiave 1 crescente?
    credo si debba utilizzare array_multisort... ma cosa scrivere?

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    70
    guarda questo esempio

    codice:
    <?php
    $ar = array(array ("10", 100, 100, "a"), array (1, 3, "2", 1));
    array_multisort($ar[0], SORT_ASC, SORT_STRING,
                   $ar[1], SORT_NUMERIC, SORT_DESC);
    ?>
    In questo esempio, dopo l'ordinamento, il primo array conterrà 10, 100, 100, "a" (ordinato come stringhe ordine crescente), e il secondo conterrà 1, 3, "2", 1 (ordinati come numeri, in ordine decrescente).
    ciao
    ***edo***

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    70
    anzi ancora meglio, guarda questo

    codice:
    function cmp ($a, $b) {
     global $numero_colonna;
     return strcasecmp($a[$numero_colonna], $b[$numero_colonna]);
    }
    
    $mioarray[0][0] = 1;
    $mioarray[0][1] = 'pippo';
    $mioarray[0][2] = 'cane';
    $mioarray[1][0] = 2;
    $mioarray[1][1] = 'minni';
    $mioarray[1][2] = 'topo';
    $mioarray[2][0] = 3;
    $mioarray[2][1] = 'gambadilegno';
    $mioarray[2][2] = 'gatto';
    
    $numero_colonna=2;
    usort($mioarray, "cmp");
    qui trovi la discussione completa
    ***edo***

  4. #4
    ok.
    grazie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    70
    devi lavorare sulla funzione cmp(), la tua sarà del tipo

    codice:
    function cmp ($a, $b) 
    {
     if (($a[1] - $b[1]) == 0)
       return strcasecmp($a[0], $b[0]);
     else
       return ($a[1] - $b[1]);
    }
    ***edo***

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.