Сортировка слов!!!!

Тема в разделе "Мегафлуд", создана пользователем extrimportal, 20 дек 2008.

Статус темы:
Закрыта.
  1. extrimportal

    extrimportal

    Регистр.:
    28 ноя 2008
    Сообщения:
    548
    Симпатии:
    70
    Помогите посортировать что то типа базы слов
    Исходник:
    PHP:
    здравствуйте=привет  
    вабажур
    =навесец|тенник|затин|щиток|колпак|козырек|светильник|абажурчик|колпак|плафон   
    абаим
    =абдал|обманщик|плут|огудала|оплетала   
    клабай
    =внимательный|осмотрительный   
    Получить -
    PHP:
    абаим=абдал|обманщик|плут|огудала|оплетала  
    вабажур
    =навесец|тенник|затин|щиток|колпак|козырек
    здравствуйте=привет  
    клабай
    =внимательный|осмотрительный 
    светильник
    |абажурчик|колпак|плафон   
    Тоесть надо отсортировать слова до знака = по алфавиту. Как не знаю.... :thenks:
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Элементарно делается на PHP.
     
  3. extrimportal

    extrimportal

    Регистр.:
    28 ноя 2008
    Сообщения:
    548
    Симпатии:
    70
    НУ может для Вас Вы же мастер, а я так себе... Так может подскажете???
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    PHP:
    <?php

    $file 
    file_get_contents('c:/text.txt');
    $file explode("\n"$file);

    foreach(
    $file as $v) {
        
    $x explode('='$v);
        
    $txt[$x[0]] = $x[1];
    }

    ksort($txt);

    $sort '';
    foreach(
    $txt as $k => $v) {
        
    $sort .= $k '=' $v "\n";
    }

    file_put_contents('c:\text_sort.txt'$sort);

    ?>
    Только пути поправь.
     
  5. extrimportal

    extrimportal

    Регистр.:
    28 ноя 2008
    Сообщения:
    548
    Симпатии:
    70
    Ну тогда Вам также легко будет удалить все слова после второго знака |
    Я правильно понял ;)
    Пример
    Выход:
    От так сделать короче а :-]
     
  6. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    PHP:
    <?php

    $file 
    file_get_contents('c:/text.txt');
    $file explode("\n"$file);

    foreach(
    $file as $v) {
        
    $x explode('='$v);
        
    $txt[$x[0]] = $x[1];
    }

    ksort($txt);

    $sort '';
    foreach(
    $txt as $k => $v) {
        
    $x '';
        
    $i 0;
        
        
    $tok strtok($v'|');
        while (
    $tok) {
            
    $x[] = $tok;
            
            if(++
    $i 2)
                
    $tok strtok('|');
            else
                break;
        }

        
    $sort .= $k '=' implode('|'$x) . "\n";
    }

    file_put_contents('c:\text_sort.txt'$sort);

    ?>
     
    extrimportal нравится это.
  7. extrimportal

    extrimportal

    Регистр.:
    28 ноя 2008
    Сообщения:
    548
    Симпатии:
    70
    Последнее что нужно очень прошу!!!!
    Если слово до = уже есть в базе то удалить слово вместо со строкой.
    Пример:
    Выход:
    Премного Вам благодарен за помощь!!
    Если сможете помочь и в этом то думаю тему можно закрывать. Спасибо еще раз. :)
     
  8. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Приведённый выше код это и сделает :D
    Можешь сам попробывать.
     
  9. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Мастер, за такое пора и бапки брать :ay:
     
  10. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Так я ж не против - шлите :D

    PS Модераторы, может стоит темку перенести из флейма в более подходящий раздел.:thenks:
     
Статус темы:
Закрыта.