3v4l.org

run code in 300+ PHP versions simultaneously
<?php $list = array( '2016-01-29' => array( array( 'date' => 'January 29', 'time' => '8:30 am', 'datetime' => '2016-01-29T08:30:00-06:00', 'alldayflag' => 0 ), array( 'date' => 'January 29', 'time' => '12:00 am', 'datetime' => '2016-01-29T00:00:00-06:00', 'alldayflag' => 1 ), array( 'date' => 'January 29', 'time' => '2:00 pm', 'datetime' => '2016-01-29T14:00:00-06:00', 'alldayflag' => 0 ), array( 'date' => 'January 29', 'time' => '10:00 am', 'datetime' => '2016-01-29T10:00:00-06:00', 'alldayflag' => 0 ), array( 'date' => 'January 29', 'time' => '10:00 am', 'datetime' => '2016-01-29T10:00:00-06:00', 'alldayflag' => 1 ), array( 'date' => 'January 29', 'time' => '12:00 pm', 'datetime' => '2016-01-29T12:00:00-06:00', 'alldayflag' => 0 ), ), '2016-01-30' => array( array( 'date' => 'January 30', 'time' => '4:00 pm', 'datetime' => '2016-01-30T16:00:00-06:00', 'alldayflag' => 0 ), array( 'date' => 'January 30', 'time' => '5:00 pm', 'datetime' => '2016-01-30T17:00:00-06:00', 'alldayflag' => 1 ), array( 'date' => 'January 30', 'time' => '5:00 pm', 'datetime' => '2016-01-30T17:00:00-06:00', 'alldayflag' => 0 ), array( 'date' => 'January 30', 'time' => '11:00 am', 'datetime' => '2016-01-30T11:00:00-06:00', 'alldayflag' => 0 ), ) ); function sortCriteria($a, $b) { $aDateTime = new DateTime($a['datetime']); $bDateTime = new DateTime($b['datetime']); if ($aDateTime == $bDateTime) { return ($a['alldayflag'] > $b['alldayflag']) ? -1 : 1; } return ($aDateTime < $bDateTime) ? -1 : 1; } $getBeginDate = '2016-01-29'; $getEndDate = '2016-01-31'; $getCurrentDate = $getBeginDate; while(strtotime($getCurrentDate) < strtotime($getEndDate)) { usort($list[$getCurrentDate], 'sortCriteria'); $getCurrentDate = date('Y-m-d', strtotime($getCurrentDate . " +1 day")); } print_r($list);

preferences:
18.81 ms | 402 KiB | 5 Q