• User

    Problema: Ordinamento di Array

    Ho un piccolo problema con alcuni array.
    Qualche mese fa ho creato un piccolo script PHP per salvare ed estrarre dati da un file con un array.
    Il fatto è che ora desidero ordinare i dati per data di inserimento in ordine discendente, tenendo conto che inserimento significa nuova stringa in fondo alla pagina. Mi spiego meglio; quello mostrato di seguito è il file-database.

    
    Lista[0] = "pippo";
    Lista[1] = "topolino";
    Lista[2] = "paperino";
    Lista[3] = "pluto";
    
    

    Credo che il quesito sia piuttosto semplice: esiste una funzione, tipo sort(), rsort() o simili, che mi consenta di ordinare i dati dal [3] allo [0] (pluto, paperino, topolino, pippo) prima di estrarli?

    Nota: ho trovato la funzione array_reverse(), ma non riesco a farla funzionare.


  • User

    Le variabili in php dovrebbero avere il $ davanti...

    
    $Lista[0] = "pippo";
    $Lista[1] = "topolino";
    $Lista[2] = "paperino";
    $Lista[3] = "pluto";
    
    $nuovaLista = array_reverse($Lista);
    
    print_r($nuovaLista);
    
    

    ti funziona?


  • User

    Grazie (Il dollaro della variabile l'avevo scordato nella stesura del codice d'esempio), ma purtroppo la faccenda non è così semplice.

    Il codice che mi hai passato è lo stesso che avevo provato io (con l'eccezione del print, ovviamente). E fin qui, nessun problema.
    Quando estraggo i dati, poi, tramite ciclo, e filtraggio per chiave -da una delle stringhe dell'array- i dati risultano così (esempio):

    Se il file/database è

    
    $Lista[0] = "pippo";
    $Lista[1] = "topolino";
    $Lista[2] = "paperino";
    $Lista[3] = "pluto";
    
    

    Io, quando filtro ed estraggo i dati tramite ciclo, dopo aver inserito
    l'array_reverse(), ottengo... (esempio)

    
    PLUTO
    TOPOLINO
    PAPERINO
    
    

  • User Attivo

    Ciao FedeHann,
    non è che per sbaglio hai utilizzato la function array_reverse() passandole
    anche 'true' come secondo parametro?

    In quel caso ti conserva anche le chiavi/indici dell'array e quindi scorrendolo in un ciclo for ti ridà praticamente lo stesso ordine dell'array iniziale.

    Ciao


  • User

    No, il valore booleano è opzionale nella funzione. Io non ho impostato nulla, dunque, di default, PHP lo interpreta come FALSE.