Intereting Posts
Создание и приглашение группы к событию через график api PHP-форма, не направляющая правильные страницы Вставка фигурных скобок в PHP Могу ли я определить, был ли PNG-файл преобразован из многостраничного PDF-файла и разделить изображение на отдельные файлы с помощью ImageMagick? Граничный поиск (solr) vs Хорошая старая фильтрация через PHP? Соединение Pdo без имени базы данных? Как получить каждый 15-й и последний день месяца в PHP Параметры HTTP-сообщения передаются json, закодированные до $ _POST Как отслеживать загрузку файлов Как получить доступ к переменной 'name' формы из PHP Создание PDF с цифровой подписью Ближайшие местоположения с широтой и долготой Преобразование html в word / excel / powerPoint с помощью PHP Слова после вопросительного знака отсутствуют при нажатии кнопки, чтобы открыть ссылку Запретить повторную отправку формы после нажатия кнопки «Назад»

как отсортировать определенные строки из массива значений в php?

$array = array("2011-September_38","2011-June_4","2010-November_9","2011-November_29","2010-December_19"); 

Я хочу отсортировать строки массива следующим образом: сначала он должен сортировать год, затем должен сортировать месяц,

ЖЕЛАТЕЛЬНЫЙ ВЫХОД

 Array ( [0] => 2010-Marh_19 [1] => 2010-November_9 [2] => 2011-June_4 [3] => 2011-September_38 [4] => 2011-November_29 ) 

Я пробовал что-то, может ли кто-нибудь связать мою функцию, чтобы сортировать год, а затем месяц http://codepad.org/skEiUkTC

Solutions Collecting From Web of "как отсортировать определенные строки из массива значений в php?"

Попробуйте этот код:

 <?php $array = array("2011-September_38","2011-June_4","2010-November_9","2011-November_29","2010-December_19"); function monthCompare($a, $b) { $da = strtotime(strstr($a, '_', true)); $db = strtotime(strstr($b, '_', true)); return $da > $db; } usort($array, "monthCompare"); print_r($array); ?> 

ВЫВОД

 Array ( [0] => 2010-November_9 [1] => 2010-December_19 [2] => 2011-June_4 [3] => 2011-September_38 [4] => 2011-November_29 ) 

Поэтому простое решение состоит в том, чтобы превратить каждое из значений в объекты с помощью DateTime :: createFromFormat , отсортировать их и затем снова вывести значения.

Прежде чем я увидел этот вопрос, я никогда не играл с объектами DateTime, но они потрясающие и удобные в работе, и createFromFormat имеет смысл.

 $array = array("2011-September_30","2011-June_4","2010-November_9","2011-November_29","2010-December_19"); foreach($array as $item) { $timestamps[] = DateTime::createFromFormat('Y-F_d',$item); } sort($timestamps); foreach($timestamps as $timestamp) { $newarray[] = $timestamp->format('Y-F_d'); } 

дам тебе

 Array ( [0] => 2010-November_09 [1] => 2010-December_19 [2] => 2011-June_04 [3] => 2011-September_30 [4] => 2011-November_29 )