BigThink

PHP tip: ordinare un array di date

Come spesso accade, mi trovo ad affrontare alcuni problemi durante i miei lavori in php e ne approfitto per condividere con voi le soluzioni.
Oggi vediamo come ordinare un array di date in php.

Solitamente, per ordinare un array numerico o di stringhe, si usa la funzione sort, piuttosto che asort per gli array associativi. Ovviamente, se provassimo a riordinare un array di date  — essendo queste delle stringhe — non otterremmo l’ordinamento voluto. Vediamo allora come procedere.

Per prima cosa dovremo assicurarci che le nostre date siano nel formato corretto. Formati accettabili sono, ad esempio:

  • Sat, 20 Sep 2008 11:26:15 +0200
  • 20 Sep 2008
  • 20-9-2008
  • 2008-09-20
  • 20.9.2008

Formati non validi sono, invece: 20 settembre 2008, 20/09/2008… e così via.
Nel caso in cui ci ritrovassimo con un formato scorretto, dovremo splittare la stringa e convertirlo manualmente.

Ora, mettiamo caso di avere un array simile:

$date = array("Mon, 22 Sep 2008 11:12:12 +0200",
              "Fri, 19 Sep 2008 13:20:45 +0200",
              "Sat, 20 Sep 2008 11:26:15 +0200");

Come prima cosa richiamiamo la funzione strtotime su ogni elemento dell’array. Possiamo farlo automaticamente grazie alla funzione per il mapping:

$date = array_map('strtotime', $date);

Ogni data viene così convertita nel suo equivalente valore intero, detto UNIX timestamp.

A questo punto potremo ordinare l’array semplicemente utilizzando le funzioni sort o rsort (nel caso volessimo ordinarlo in ordine decrescente):

sort($date);

L’ultimo passo è riconvertire ogni data nel formato a noi più congeniale, grazie alla funzione date:

foreach($date as $i => $d)
    $date[$i] = date('d-m-Y', $d);

Semplice, no? Abbiamo così ordinato il nostro array di date.

Articolo scritto da Ghido

Fondatore di BigThink.it, si occupa dello sviluppo e del coordinamento dei progetti tecnologici. Specializzato nel Marketing su Facebook e nello sviluppo di Applicazioni Social, fa consulenza e formazione ad aziende ed agenzie.

Leggi anche...

Accelerare il caricamento del tuo sito con una riga di codice

Accelerare il caricamento del tuo sito con una riga di codice

Fate di tutto per ottimizzare i vostri siti (o blog) per renderli più leggeri possibile, ma, nonostante gli sforzi, il caricamento è ancora lento? Cercate sempre di evitare grafiche pesanti e immagini troppo grandi, ma il vostro server è una lumaca? Se avete un sito in php che gira su Apache, eccovi due modi ...
PHP: validare un form con le eccezioni

PHP: validare un form con le eccezioni

E' da tempo che programmo in PHP e ho avuto modo di apprezzare la programmazione OO, rispetto all'approccio procedurale, in particolare grazie al maggior supporto agli oggetti di PHP5. Vedremo in questo articolo come validare i campi di un form, utilizzando la gestione delle eccezioni, disponibili solo dalla versione 5, appunto. Darò per scontato che ...
PHP trick: inviare header dopo aver scritto nella pagina

PHP trick: inviare header dopo aver scritto nella pagina

Mi è capitato spesso nella mia carriera di programmatore PHP di trovarmi di fronte a questo errore: Warning: Cannot modify header information - headers already sent by... E' un problema che incorre quando tentiamo di inviare informazioni header, dopo aver già mandato del contenuto ad una pagina: ad esempio se abbiamo scritto qualcosa e proviamo ...
PHP: manipolare immagini con tre righe di codice

PHP: manipolare immagini con tre righe di codice

Oggi vi presento una classe PHP per manipolare in tutta facilità le immagini: si tratta di SmartImage del buon Alessandro Coscia di CodiceFacile. Con poche righe di codice potremo ridimensionare, croppare, convertire, ottimizzare, ruotare le immagini ed aggiungervi un watermark. Il tutto compatibile sia con PHP 4 che 5. Per prima cosa, scarichiamo SmartImage, ...
Una cache per il numero di iscritti a Facebook e Twitter

Una cache per il numero di iscritti a Facebook e Twitter

Visualizzare il numero di followers su twitter e di fan su facebook è molto oneroso in termini di tempo per il nostro blog. I server sempre sovraccarichi di questi social network minano i tempi di caricamento in modo notevole. Chiunque abbia provato a recuperare in formato testuale questi valori, in particolare quelli relativi a ...

1 Commento

  1. Mi è stato particolarmente utile, anche se ho dovuto aggiungere alcuni passaggi per adattarlo ai miei scopi. Mille grazie :)

    1 marzo 2010, 10:39

1 Citazioni