$registros = array(
array(
'hora' => '00:45',
'date' => ''
),
array(
'hora' => '17:45',
'date' => ''
),
array(
'hora' => '00:45',
'date' => ''
),
array(
'hora' => '14:45',
'date' => ''
),
array(
'hora' => '02:30',
'date' => ''
),
array(
'hora' => '12:00',
'date' => ''
),
array(
'hora' => '01:00',
'date' => ''
),
array(
'hora' => '05:15',
'date' => ''
),
array(
'hora' => '09:00',
'date' => ''
),
array(
'hora' => '23:00',
'date' => ''
),
array(
'hora' => '00:00',
'date' => ''
),
array(
'hora' => '23:59',
'date' => ''
),
array(
'hora' => '03:00',
'date' => ''
)
);
$data = array();
$hora_anterior = 0;
$dia = date('d-m-Y');// parqa fecha
// si solo es el correlativo (comentar línea anterior y descomentar linea siguiente)
//$dia = 0;
foreach($registros as $registro):
if($registro['hora'] < $hora_anterior):
$dia = date('d-m-Y', strtotime($dia . "+1 Day")); //fecha
// si solo es el correlativo (comentar línea anterior y descomentar linea siguiente)
// $dia++;
endif;
$hora_anterior = date('H',strtotime($registro['hora']));
array_push($data, array($registro['hora'] => $dia));
endforeach;
var_dump($data);