Как отсортировать этот массив по дате?

#php #arrays #algorithm #multidimensional-array

#php #массивы #алгоритм #многомерный массив

Вопрос:

Я пытаюсь отсортировать массив такого рода :

 array (
  0 => 
  array (
    'id_ouverture' => 5,
    'debut' => '2011-04-25 08:00:00',
    'fin' => '2011-04-25 20:00:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,          
    ),
  ),
  1 => 
  array (
    'id_ouverture' => 6,
    'debut' => '2011-04-18 08:00:00',
    'fin' => '2011-04-18 10:45:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,           
    ),
  ),
  2 => 
  array (
    'id_ouverture' => 7,
    'debut' => '2011-05-02 08:00:00',
    'fin' => '2011-05-02 10:45:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,
    ),
  ),
  3 => 
  array (
    'id_ouverture' => 8,
    'debut' => '2011-05-09 08:00:00',
    'fin' => '2011-05-09 10:45:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,           
    ),
  ));
  

Мне нужно отсортировать этот массив по этому ключу: array[$i][‘debut’] в порядке возрастания.

Результаты должны быть :

 array (
  1 => 
  array (
    'id_ouverture' => 6,
    'debut' => '2011-04-18 08:00:00',
    'fin' => '2011-04-18 10:45:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,           
    ),
  ),
  0 => 
  array (
    'id_ouverture' => 5,
    'debut' => '2011-04-25 08:00:00',
    'fin' => '2011-04-25 20:00:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,          
    ),
  ),

  2 => 
  array (
    'id_ouverture' => 7,
    'debut' => '2011-05-02 08:00:00',
    'fin' => '2011-05-02 10:45:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,
    ),
  ),
  3 => 
  array (
    'id_ouverture' => 8,
    'debut' => '2011-05-09 08:00:00',
    'fin' => '2011-05-09 10:45:00',
    'id_salle' => 
    array(
       'id' => '7',
       'nom' => 'BLABLA',
       'id_type_salle' => '3',
       'visible' => 1,           
    ),
  ));
  

У вас есть идея, как это сделать?

Ответ №1:

Вам нужно использовать uasort для написания функции, которая будет сортировать массив за вас.

http://php.net/manual/en/function.uasort.php

По сути, вы пишете свою собственную функцию сравнения и передаете ее как обратный вызов uasort метода