Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB59.2570
BTC/USD0.0000
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 22.01.2011, 13:15   #1
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 669
Бабло: $149025
По умолчанию PHP сортировка

Есть файл в нём список типа
PHP код:
text 172
text 97
text 12895 
Подскажите пожалуйста как отсортировать список чтобы цифры справа списка были расположены по убыванию должно получиться так
PHP код:
text 12895
text 172
text 97 
aoki вне форума  
Старый 22.01.2011, 13:28   #2
qazxcvbnm
Ниибаца крутой програмер
 
Аватар для qazxcvbnm
 
Регистрация: 04.08.2009
Сообщений: 904
Бабло: $177555
По умолчанию

если text одинаковый то

PHP код:
<?php

$strings 
explode(PHP_EOL"text.txt");

natsort($strings);

$strings array_reverse($strings);

$file fopen("text_result.txt""w");

fwrite($fileimplode(PHP_EOL$strings).PHP_EOL);

fclose($file);

?>
qazxcvbnm вне форума  
Старый 22.01.2011, 13:29   #3
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 669
Бабло: $149025
ТС -->
автор темы ТС По умолчанию

Нет он разный
aoki вне форума  
Старый 22.01.2011, 13:36   #4
imgreen
Lion King
 
Аватар для imgreen
 
Регистрация: 15.11.2008
Сообщений: 12,089
Бабло: $247697996
По умолчанию

Подсказываю - делаешь ассоциативный массив, где первое слово строки ключ, второе значение, сортируешь.
__________________
ДетскиеДомики.ру - забота о детях с особыми нуждами.
imgreen вне форума  
Старый 22.01.2011, 13:39   #5
qazxcvbnm
Ниибаца крутой програмер
 
Аватар для qazxcvbnm
 
Регистрация: 04.08.2009
Сообщений: 904
Бабло: $177555
По умолчанию

если text разный то

PHP код:
<?php

$strings 
explode(PHP_EOLfile_get_contents("text.txt")); 

for (
$strings_c=0$strings_c<sizeof($strings); $strings_c++)
{
$strings[$strings_c] = preg_replace("/\s+/"" "trim($strings[$strings_c]));

$words explode(' '$strings[$strings_c]);

$words_new array_reverse($words);

$strings[$strings_c] = $words_new[0].' + '.implode(' ' $words);
}

natsort($strings); 

$strings array_reverse($strings); 

for (
$strings_c=0$strings_c<sizeof($strings); $strings_c++)
{
$strings[$strings_c] = explode(' + '$strings[$strings_c]);

$strings[$strings_c] = $strings[$strings_c][1];
}


$file fopen("text_result.txt""w"); 

fwrite($fileimplode(PHP_EOL$strings).PHP_EOL); 

fclose($file);

?>

Последний раз редактировалось qazxcvbnm; 22.01.2011 в 13:50.
qazxcvbnm вне форума  
Старый 22.01.2011, 13:46   #6
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 669
Бабло: $149025
ТС -->
автор темы ТС По умолчанию

Мне в файл text_result.txt пишеться text.txt
aoki вне форума  
Старый 22.01.2011, 13:50   #7
qazxcvbnm
Ниибаца крутой програмер
 
Аватар для qazxcvbnm
 
Регистрация: 04.08.2009
Сообщений: 904
Бабло: $177555
По умолчанию

поправил
qazxcvbnm вне форума  
Старый 22.01.2011, 13:54   #8
aoki
Senior Member
 
Регистрация: 05.10.2009
Сообщений: 669
Бабло: $149025
ТС -->
автор темы ТС По умолчанию

Спасибо заработало.
aoki вне форума  
Старый 22.01.2011, 15:19   #9
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,382
Бабло: $470735
По умолчанию

я бы сделал так:
PHP код:
<?php
  $text 
file_get_contents('text.txt');
  
preg_match_all('|(.+ )([0-9]+)|'$text$out);
  
$res array_combine($out[1], $out[2]);
  
asort($res);
  
$fp fopen("text_result.txt""w+");
  foreach(
$res as $k=>$v)
    
fwrite($fp$k.$v.PHP_EOL);
  
fclose($fp);
?>
или так:
PHP код:
<?php
$text 
file_get_contents('text.txt');
preg_match_all('|(.+ )([0-9]+)|'$text$out);
array_multisort($out[2], $out[1]);
$fp fopen("text_result.txt""w+");
foreach(
$out[1] as $k=>$v)
  
fwrite($fp$v.$out[2][$k].PHP_EOL);
fclose($fp);
?>
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума  
Старый 22.01.2011, 15:24   #10
RedHead
Senior Member
 
Аватар для RedHead
 
Регистрация: 26.08.2008
Адрес: UA
Сообщений: 2,946
Бабло: $402755
По умолчанию

ексель!
RedHead вне форума  
Закрытая тема



Опции темы
Опции просмотра