Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [php|array] ordinamento numeri

    Ho degli array con valori numerici e vorrei metterli in ordine crescente ma l'uso di sort non mi aiuta tanto. Ecco l'esempio:

    $array[51]
    $array[5]
    $array[12]
    $array[7]
    $array[43]

    sort($array);

    Ottengo:

    $array[12]
    $array[43]
    $array[5]
    $array[51]
    $array[7]

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    prova cosi
    Codice PHP:
    <?php
    $numeri
    =array("51","5","12","7","43");

    sort($numeri);
    print_r($numeri);

    ?>

  3. #3
    Non posso fare così perchè i numeri degli array vengono calcolati a random...


  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    116
    non capisco cosa vorresti fare, da quello che so gli array si creano in due modi uno e come lo descritto io sopra e l'altro e cosi (prendo in prestito i tuoi dati)
    Codice PHP:
    $array[]="51";
    $array[]="5";
    $array[]="12";
    $array[]="7";
    $array[]="43";

    sort($array);

    print_r($array); 
    quelli che inserisci all'interno delle parentesi quadrate dovrebbero riferirsi all'indice numerico dell'array , potresti ampliare la tua domanda magari postando una parte dello script e spiegando meglio cosa vorresti fare?

  5. #5
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    basta fare così:
    Codice PHP:
    $test[51] = "ds";
    $test[5] = "dsdd";
    $test[12] = "saa";
    $test[7] = "aaaa";
    $test[43] ="aaa";
    ksort($test);
    echo 
    "<pre>";

    print_r($test);
    echo 
    "</pre>" 

  6. #6
    Originariamente inviato da mariox
    basta fare così:
    Codice PHP:
    $test[51] = "ds";
    $test[5] = "dsdd";
    $test[12] = "saa";
    $test[7] = "aaaa";
    $test[43] ="aaa";
    ksort($test);
    echo 
    "<pre>";

    print_r($test);
    echo 
    "</pre>" 

    Così non mi ordina correttamente, mi stampa come primo risultato $test[12] mentre io voglio $test[5]!!

  7. #7
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    strano!
    a me stampa tutto correttamente:
    Array
    (
    [5] => dsdd
    [7] => aaaa
    [12] => saa
    [43] => aaa
    [51] => ds
    )

  8. #8
    azzzz

    con ksort funziona!!! Ma se avessi due array così cosa succederebbe??

    $array[51]="13";
    $array[51]="12";

  9. #9
    Sono un duro

    Il problema non sorgeva dagli array (funziona benissimo anche sort) ma bensi da una omissione di una graffa:

    Codice PHP:
            $i=0;
            while (
    $i $nr) {
                          
    $r=rand(1,3);
                 
    $y[$i]=rand(2,90);
                if(
    $r==1){
                
    $x=rand(1,10);
                
    $g[$i]="$y[$i]-$p[$x]";
                }elseif(
    $r==2){
                
    $x=rand(5,10);
                
    $g[$i]="$y[$i]-$p[$x]";
                }elseif(
    $r==3)
                
    $x=rand(7,10);
                
    $g[$i]="$y[$i]-$p[$x]";
                
    $i++;
                } 
    Strano che non mi abbia segnalato l'errore

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 © 2024 vBulletin Solutions, Inc. All rights reserved.