За последние 24 часа нас посетили 17229 программистов и 1651 робот. Сейчас ищут 870 программистов ...

вывод наибольшего числа

Тема в разделе "Прочие вопросы по PHP", создана пользователем zhenia3003, 22 мар 2013.

  1. zhenia3003

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

    С нами с:
    20 авг 2012
    Сообщения:
    184
    Симпатии:
    3
    Существует 3 файла с цифрами (1.txt = 1, 2.txt = 2, 3.txt = 3)

    Код (Text):
    1. <?php
    2. $Results = glob("txt/*.{txt}", GLOB_BRACE);
    3. foreach ($Results as $filename) {  
    4. require max(array($filename));
    5. }
    6. ?>
    Все числа выводятся по порядку (1 2 3), а как сделать чтобы выводилось самое большое, т.е. (3) ???
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Код (PHP):
    1. $Results = glob("txt/*.{txt}", GLOB_BRACE);
    2. require(array_pop($Results));
     
  3. neverlose

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

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Последний - не всегда максимальный, это работает лишь для некоторых частных случаев.
    Изначально у автора был более верный вариант.

    Коррекция варианта автора:
    Код (Text):
    1. <?php
    2. $Results = glob("txt/*.txt"); // Получили список всех .txt файлов в папке txt/
    3.  
    4. // Далее нужно преобразовать весь список txt/<число>.txt в просто <число>
    5. foreach($Results as &$res) {
    6.     $res = basename($res, '.txt');
    7. }
    8.  
    9. $max = max($Results); // Выбрали максимальный
    10. echo file_get_contents("txt/$max.txt"); // Вывели содержимое файла
    11. ?>
    Если же нужно просто выводить имя файла без расширения и пути (т.е. не смотреть на содержимое файла), то стоит заменить строку
    echo file_get_contents("txt/$max.txt"); // Вывели содержимое файла
    на
    echo $max;