За последние 24 часа нас посетили 21629 программистов и 1016 роботов. Сейчас ищут 697 программистов ...

Построчный вывод из текстового файла в порядке увеличения даты

Тема в разделе "Сделайте за меня", создана пользователем serega499, 3 окт 2021.

  1. serega499

    serega499 Активный пользователь

    С нами с:
    12 янв 2016
    Сообщения:
    13
    Симпатии:
    0
    Нужна помощь.
    Есть текстовый файл.

    2021-10-03|текст1
    2021-10-14|текст2
    2021-10-07|текст3
    2021-10-19|текст4

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

    $file = file ("dela.txt");
    $size = sizeof($file);
    $lineCount = count(file('dela.txt'));
    for ($i=count($file)-1;$i>count($file)-$lineCount-1;$i--){
    list($date,$text) = explode("|", trim($file[$i]));

    Нужен вывод в порядке возрастания даты (в пределах двух недель или более)
    С меня небольшой презент ( условные пара бутылок пива на карту )
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    PHP:
    1.  for ($i=1;$i<=count($file);$i++){
    ,Чтение в прямом порядке, если сортировка нужна, то надо данные в массив загонять и применять функцию sort / usort
    И у вас не весь код, нет вывода самого
     
  3. serega499

    serega499 Активный пользователь

    С нами с:
    12 янв 2016
    Сообщения:
    13
    Симпатии:
    0
    Да, код не весь, но не в нем дело... Вопрос именно как отсортировать для вывода по возрастанию даты? Возможно отсортировать всю строку? Или надо брать из строки числа, сортировать их, а после привязывать к уже отсортированным числам содержание их строк?
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Надо брать строку, разбивать ее и кидать в массив, массив сортировать
     
  5. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Для конкретно этого формата даты достаточно sort().
    Возможно, с флагом SORT_STRING
    PHP:
    1. sort($file, SORT_STRING);
    2. echo implode(PHP_EOL, $file);