За последние 24 часа нас посетили 44216 программистов и 3099 роботов. Сейчас ищут 1017 программистов ...

сортировка массива или вывод в обратном порядке

Тема в разделе "PHP для новичков", создана пользователем ??? Соловьев Е ш326, 3 апр 2012.

  1. добрый вечер уважаемые программисты!

    вот у меня есть массив:
    Код (Text):
    1. <?php
    2.  $lol = Array(
    3.   0 => Array('text1' => '',
    4.                'text2' => '',
    5.            'date' => '',
    6.            'foto' => '',
    7.            'name' => ''),
    8.          
    9.   1 => Array('text1' => '',
    10.            'text2' => '',
    11.            'date' => '',
    12.            'foto' => '',
    13.            'name' => ''));
    в который со временем будут добавляться элементы. каждый элемент есть ещё один массив.
    в элементе 'date' прописана дата формата ДД.ММ.ГГГГ
    как мне отсортировать массив в порядке возрастания по дате???

    ИЛИ

    как вывести массив
    Код (Text):
    1. foreach($lol as $user) {
    2.        
    3. код
    4.  
    5.      }
    в обратном порядке.


    заранее спасибо
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Вот пример:
    Код (PHP):
    1. <pre>
    2. <?php
    3. $lol = array(
    4.     array(
    5.         'text1' => 'text1',
    6.         'text2' => 'text2',
    7.         'date' => '2012-03-30',
    8.         'foto' => 'foto1.jpg',
    9.         'name' => 'FirstUser'
    10.     ),
    11.     array(
    12.         'text1' => 'text1',
    13.         'text2' => 'text2',
    14.         'date' => '2012-04-02',
    15.         'foto' => 'foto2.jpg',
    16.         'name' => 'SecondUser'
    17.     ),
    18.     array(
    19.         'text1' => 'text1',
    20.         'text2' => 'text2',
    21.         'date' => '2012-04-01',
    22.         'foto' => 'foto3.jpg',
    23.         'name' => 'ThirdUser'
    24.     )
    25. );
    26. function cmp($a, $b) {
    27.     return(($a['date'] === $b['date']) ? 0 : (($a['date'] > $b['date']) ? 1 : -1));
    28. }
    29. function cmp_desc($a, $b) {
    30.     return(($a['date'] === $b['date']) ? 0 : (($a['date'] > $b['date']) ? -1 : 1));
    31. }
    32. uasort($lol, 'cmp');
    33. print_r($lol);
    34. echo("\n\n==============================\n\n");
    35. uasort($lol, 'cmp_desc');
    36. print_r($lol);
    37. ?>
    38. </pre>
    Для твоего случая - тебе нужно будет переписать функцию cmp, чтобы она сравнивала даты в соответствии с используемым тобой форматом. Не сможешь сам - обращайся, но, думаю, разберёшься на основе этого примера, как можно использовать собственные функции сравнения элементов во встроенной в PHP функции пользовательской сортировки
     
  3. большое спасибо. вроде работает. если что напишу.
    ещё раз спасибо))