Allora, supponiamo che abbiamo il seguente array di dati prelevati dal DB:
Codice PHP:
$contratti = array(array('id_contratto'=>1,'data_contratto'=>'12-04-2014'),
array('id_contratto'=>2,'data_contratto'=>'12-04-2014'),
array('id_contratto'=>3,'data_contratto'=>'15-04-2014'),
array('id_contratto'=>4,'data_contratto'=>'18-04-2014'),
array('id_contratto'=>5,'data_contratto'=>'18-04-2014'),
array('id_contratto'=>6,'data_contratto'=>'27-04-2014'),
array('id_contratto'=>7,'data_contratto'=>'03-05-2014'),
array('id_contratto'=>8,'data_contratto'=>'03-05-2014'),
);
Dobbiamo fare un ciclo che ci permetta di scorrere questo array, confrontare le date ed eventualmente stampare li separatore. Prima del ciclo, però, inizializziamo una vcariabile per controllare la data.
Vediamo come fare:
Codice PHP:
$controllo_data = ''; //La setto come vuota, ma puoi settarla anche come 'pippo'
foreach($contratti as $contratto){
//controllo se la data è uguale alla precedente o se è differente dal valore inizializzato
//per distinguere il primo record
if($controllo_data == '') {
//Setto la data da controllare
$controllo_data = $contratto['data_contratto'];
//Qui stampo quello che devo senza problemi, è il primo record che cicliamo
}
elseif($contratto['data_contratto'] == $controllo_data){
//Stampo quello che devo senza problemi, la data è la stessa
}
else {
//Qui avviene il cambio data. Settiamo la nuova data come controllo
$controllo_data = $contratto['data_contratto'];
//Stampo il divisore qui es. "echo '</hr>';"
//Stampo i dati che devo stampare e continuo
}
}
Quindi, per esempio, uscirà così:
------------------
| ID | Data |
------------------
| 1 | 12-04-2014 |
| 2 | 12-04-2014 |
------------------ <<< divisore
| 3 | 15-04-2014 |
------------------ <<< divisore
| 4 | 18-04-2014 |
| 5 | 18-04-2014 |
------------------ <<< divisore
| 6 | 27-04-2014 |
------------------ <<< divisore
| 7 | 03-05-2014 |
| 8 | 03-05-2014 |
------------------
Questo è un esempio banale banale. Bisogna prendere in considerazione se le date siano timestamp o che comprendano anche dati aggiuntivi oltre al giorno, mese e anno. Se dovessero contenere anche ulteriori dati, devi trasformarlo in data semplice (ad es. gg-mm-aaa), in modo tale da poterla dividere per giorni. Questa conversione si fa così:
Codice PHP:
$data = date('d-m-Y', strtotime($data_da_convertire));
Per altri dubbi chiedi pure; non esitare