Вывод по алфавиту

Discussion in 'PHP' started by GreenTiger, 9 Feb 2008.

  1. GreenTiger

    GreenTiger Banned

    Joined:
    7 Dec 2007
    Messages:
    62
    Likes Received:
    10
    Reputations:
    0
    Проблема ужас...

    $lines[$p] это строки в файле data.dat

    Они такого формата

     
  2. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    sort($des) - Сортирует элементы масива по возростанию
    rsort($des) - по убыванию
    ksort($des) - сортирует ключи массива по возростанию
    krsort($des) - ключи по убыванию

    Вот пример:

    PHP:
    <?php
    $mass 
    = array("З","А","Я","М");

    sort($mass);

    foreach(
    $mass as $str) {
        echo 
    $str."<br>";
    }
    ?>
    Вывод будет:
     
    #2 bul.666, 9 Feb 2008
    Last edited: 9 Feb 2008
  3. GreenTiger

    GreenTiger Banned

    Joined:
    7 Dec 2007
    Messages:
    62
    Likes Received:
    10
    Reputations:
    0
    Я знаю что значат все эти функции...
    Сама проблема в коде..надо в правильном месте выставить....
     
  4. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Вообще в данном случае все очень запарно...

    Можно сделать все намного легче с MySQL...

    Вообще хз, но нужно вывести в отдельный массив все названия тем, сортировать его по алфавиту, подом перебирая этот массив в цикле выводить основной массив, где встречаеться эта тема...
    Гемор
     
    #4 bul.666, 9 Feb 2008
    Last edited: 9 Feb 2008
  5. GreenTiger

    GreenTiger Banned

    Joined:
    7 Dec 2007
    Messages:
    62
    Likes Received:
    10
    Reputations:
    0
    Нет не мой...я не юзаю файлы
     
  6. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    А если
    PHP:
             if($dt[9]=="vip"
            { 
                
    $ivip++; 
            } 
    заменить на

    PHP:
            if($dt[9]=="vip"
            { 
                
    $ivip++; 
    $theme[] = $dt[3];
            } 

    А потом при выводе $theme сортировать по алфавиту =) сои еси чё не так
     
    1 person likes this.
  7. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Вот наркоманский пример:

    Файл data.txt
    Курсивом отметил "темы"...

    Файл sort.php
    PHP:
    <?php

    $osnova 
    file("data.txt"); //Создаем массив из файла

    foreach($osnova as $temp) { 
        
    $ss explode("|",$temp);
        
    $new[] = $ss[2]; //Перебираем массив и создаем новый с "темами"
    }
    sort($new); //Сортируем массив с "темами"
    foreach($new as $str) {
        foreach(
    $osnova as $dd) {
        
    $ss explode("|",$dd);
        if (
    $str == $ss[2]) echo $ss[0]."|".$ss[1]."|<b>".$ss[2]."</b>|".$ss[3]."<br>"//Если тема из массива тем совпадает с основным массивом то выводим эту строку
        
    }
    }
    ?>
    Короче на выходе получилось:
     
  8. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Нажми сюда: [​IMG]

    И выбери вверху удалить сообщение
     
  9. NOmeR1

    NOmeR1 Everybody lies

    Joined:
    2 Jun 2006
    Messages:
    1,068
    Likes Received:
    783
    Reputations:
    213
    PHP:
    <?php
        
    function sort_db($db) { 
            function 
    cmp($a$b) { 
                return 
    strcmp($a[3], $b[3]); 
            } 
            
    $new_array = array(); 
            foreach(
    explode("\n"$db) as $str) { 
                
    $new_array[] = explode('|'$str); 
            } 
            
    usort($new_array"cmp"); 
            
    $string ''
            foreach(
    $new_array as $array) { 
                foreach(
    $array as $i => $str) { 
                    
    $string .= $str
                    if(
    $i != (count($array)-1)) { 
                        
    $string .= '|'
                    } 
                } 
                
    $string $string."\n"
            } 
            return 
    $string
        }
    ?>
    Юзай
     
    #9 NOmeR1, 10 Feb 2008
    Last edited: 10 Feb 2008