0

I have next array:

Array ( 
[15709] => stdClass Object ( 
  [pid] => 15709 
  [channel_ID] => 51 
  [date] => 2016-03-21 00:30:00 
  [program_info] => Х/ф "Стелла" ) 
[15710] => stdClass Object ( 
  [pid] => 15710 [channel_ID] => 51 
  [date] => 2016-03-21 02:20:00 
  [program_info] => Х/ф "Часы доблести" ) 
[15711] => stdClass Object ( 
  [pid] => 15711 
  [channel_ID] => 51 
  [date] => 2016-03-21 06:15:00 
  [program_info] => Фильм-концерт "Хичкок. Концерт в магазине" 
) )

I need sort him by field [date], should first go to the elements starting from the specified time 05:00:00, result must be somthing like this:

Array ( 
    [15711] => stdClass Object ( 
      [pid] => 15711 
      [channel_ID] => 51 
      [date] => 2016-03-21 06:15:00 
      [program_info] => Фильм-концерт "Хичкок. Концерт в магазине" )
    [15709] => stdClass Object ( 
      [pid] => 15709 
      [channel_ID] => 51 
      [date] => 2016-03-21 00:30:00 
      [program_info] => Х/ф "Стелла")
    [15710] => stdClass Object ( 
      [pid] => 15710 [channel_ID] => 51 
      [date] => 2016-03-21 02:20:00 
      [program_info] => Х/ф "Часы доблести"
    ) )
Artyom Kondra
  • 105
  • 1
  • 8

1 Answers1

1

Try something like this:

uasort($myarray, function($a, $b) {
    if ($a['date'] == $b['date']) {
        return 0;
    }
    return ($a['date'] < $b['date']) ? -1 : 1;
})
MrRP
  • 822
  • 2
  • 10
  • 25
  • I need sort from 05:00 to 04:59, somthing like this: `array('05:00','06:00','07:00','12:00','14:00','16:00','22:00','23:00','02:00','04:00')` – Artyom Kondra Mar 25 '16 at 13:56
  • 1
    You can explode the date in the function and compare the time only – MrRP Mar 25 '16 at 13:57