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

Статус
В этой теме нельзя размещать новые ответы.

extrimportal

Я за мир, во всём мире!
Заблокирован
Регистрация
28 Ноя 2008
Сообщения
590
Реакции
120
  • Автор темы
  • Заблокирован
  • #1
Помогите посортировать что то типа базы слов
Исходник:
PHP:
здравствуйте=привет  
вабажур=навесец|тенник|затин|щиток|колпак|козырек|светильник|абажурчик|колпак|плафон   
абаим=абдал|обманщик|плут|огудала|оплетала   
клабай=внимательный|осмотрительный
Получить -
PHP:
абаим=абдал|обманщик|плут|огудала|оплетала  
вабажур=навесец|тенник|затин|щиток|колпак|козырек| 
здравствуйте=привет  
клабай=внимательный|осмотрительный 
светильник|абажурчик|колпак|плафон
Тоесть надо отсортировать слова до знака = по алфавиту. Как не знаю.... :thenks:
 
Элементарно делается на PHP.
 
  • Автор темы
  • Заблокирован
  • #3
НУ может для Вас Вы же мастер, а я так себе... Так может подскажете???
 
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
Ну тогда Вам также легко будет удалить все слова после второго знака |
Я правильно понял ;)
Пример
здравствуйте=привет
вабажур=навесец|тенник|затин|щиток|колпак|козырек|светильник|абажурчик|колпак|плафон
абаим=абдал|обманщик|плут|огудала|оплетала
клабай=внимательный|осмотрительный
Выход:
здравствуйте=привет
вабажур=навесец|тенник
абаим=абдал|обманщик
клабай=внимательный|осмотрительный
От так сделать короче а :-]
 
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);

?>
 
  • Автор темы
  • Заблокирован
  • #7
Последнее что нужно очень прошу!!!!
Если слово до = уже есть в базе то удалить слово вместо со строкой.
Пример:
здравствуйте=привет
здравствуйте=привет
здравствуйте=привет
здравствуйте=привет
вабажур=навесец|тенник|затин|щиток|колпак|козырек| светильник|абажурчик|колпак|плафон
абаим=абдал|обманщик|плут|огудала|оплетала
клабай=внимательный|осмотрительный
Выход:
здравствуйте=привет
вабажур=навесец|тенник|затин|щиток|колпак|козырек| светильник|абажурчик|колпак|плафон
абаим=абдал|обманщик|плут|огудала|оплетала
клабай=внимательный|осмотрительный
Премного Вам благодарен за помощь!!
Если сможете помочь и в этом то думаю тему можно закрывать. Спасибо еще раз. :)
 
Приведённый выше код это и сделает :D
Можешь сам попробывать.
 
Мастер, за такое пора и бапки брать :ay:
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху