Сортировка строк.

Discussion in 'PHP' started by Witch_You, 21 Mar 2012.

  1. Witch_You

    Witch_You New Member

    Joined:
    24 Feb 2012
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Есть текстовый документ, в котором около 100 строк типа
    HTML:
    Один
    Два
    Три
    Дерево
    Яблоко
    111222333
    Xxx123zzz
    Мне их нужно отсортировать в обратном порядке. Чтобы результат был таким:
    HTML:
    Xxx123zzz
    111222333
    Яблоко
    Дерево
    Три
    Два
    Один
    Помогите такое реализовать?
     
  2. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    http://www.php.su/functions/?file
    http://www.php.su/functions/?array-reverse
     
  3. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    <?php
    $Strings 
    file('file.txt');

    array_walk($Strings, function(&$Str){ $Str trim($Str); });
    rsort($StringsSORT_STRING);

    file_put_contents('file_res.txt'join("\n"$Strings));
    Только зачем отдельную тему создавать? :confused:
     
    #3 Chaak, 21 Mar 2012
    Last edited: 21 Mar 2012
  4. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    В файл str.txt кладем нужные строки, а в new.txt сохранится результат.
    Функция file() загоняет файл в массив построчно.
    Функция array_reverse() возвращает массив в обратном порядке.
    Функция file_put_contents() сохраняет в файл.
    PHP:
    <?php

    file_put_contents
    ('new.txt'array_reverse(file('str.txt')));

    ?>
     
    #4 daniel777, 22 Mar 2012
    Last edited: 22 Mar 2012
  5. 1NtR0

    1NtR0 Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    233
    Likes Received:
    88
    Reputations:
    35
    daniel777

    array_reverse - Возвращает массив с элементами в обратном порядке, но никак не сортирует его. rsort - обратная сортировка как сказали выше
     
    1 person likes this.
  6. daniel777

    daniel777 Elder - Старейшина

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Благодарю за поправку, исправил свой пост.
     
  7. Witch_You

    Witch_You New Member

    Joined:
    24 Feb 2012
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    PHP:
    Parse errorsyntax errorunexpected T_FUNCTION
    :(

    Помогло! Спасибо!
    Народ, а можно сделать что – то типа такого, чтобы на страница было поле textarea, а под ним кнопка. Вставил в поле строчки, нажал кнопку – результат в этом же окне?
     
  8. 1NtR0

    1NtR0 Elder - Старейшина

    Joined:
    14 Apr 2007
    Messages:
    233
    Likes Received:
    88
    Reputations:
    35

    PHP:
    <html>
            <head>
                    <title></title>
            </head>

            <body>
                    <div align="center">
                            <form method="POST">
                                    <textarea name="strings" rows="10" cols="50"></textarea> <br />
                                    <input type="submit" />
                            </form>


                            <?php
                                    
    if(isset($_POST['strings']) && !empty($_POST['strings'])) {
                                            echo 
    '<textarea name="result" rows="10" cols="50">';
                                            
    $strings explode("\n"trim($_POST['strings']));
                                            echo 
    implode("\n"array_reverse($strings));
                                            echo 
    '</textarea>';
                                    }
                            
    ?>
                    </div>

            </body>
    </html>
     
  9. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    array_reverse поможет лишь, если строки уже отсротированы по возрастанию

    насчет ошибки скажу что php < 5.3.0
     
  10. Skofield

    Skofield Elder - Старейшина

    Joined:
    27 Aug 2008
    Messages:
    937
    Likes Received:
    355
    Reputations:
    58
    Я думаю, что тс'у нужно было просто перевернуть строки, которые уже отсортированы нужным образом, просто он некорректно выразился.