Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Сортировка дампа (PHP)
цитата
24/10/14 в 18:49
 Lexikon
есть дамп
id1|text1|0.15
id2|text2|0.1
id3|text3|0.5
id4|text4|0.1
id5|text5|0.2
id6|text6|0
нужно отсортировать этот дамп по последним значениям в строке, по убыванию или возрастанию не имеет значения.
Х.з. как решить, вроде ничего сложного, но в тоже время проблема.
Подскажите, кому не сложно на PHP
Спасибо!

Последний раз редактировалось: Lexikon (24/10/14 в 18:54), всего редактировалось 1 раз
цитата
24/10/14 в 18:54
 MOBIUS
1. меняешь в блокноте | на ;
2. переименовываешь расширение файла в csv
3. сортируешь в Excel
4. меняешь в блокноте ; на |

Можно, конечно замену не делать, но так, ИМХО, проще тебе объяснить.
Если что непонятно - стучи в личку.
цитата
24/10/14 в 18:59
 condom007
В командной строке на любом серваке можешь сделать

sort --field-separator='|' --key=3 /path/to/sourceFile > /path/to/destinationFile

/path/to/sourceFile замени на путь к файлу с начальными значениями
/path/to/destinationFile заменит на путь, куда сохранить результат

А с помощью пыхи то же самое:
<?
exec("sort --field-separator='|' --key=3 /path/to/sourceFile > /path/to/destinationFile");


smail54.gif
цитата
24/10/14 в 19:17
 Lexikon
нашел выход через arsort()
цитата
24/10/14 в 19:46
 Guun
   $filename = 'file.txt'; //path to file

$src_arr = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($src_arr as $value) {
   $value = trim($value);
   $parts_arr = explode('|', $value);
   $num = count($parts_arr)-1;
   $res_arr[$parts_arr[$num]] = $value;
}
ksort($res_arr);
$fp = fopen($filename, 'w');
foreach ($res_arr as $value) fwrite($fp, "{$value}\n");
fclose($fp);


И chmod 777 на file.txt не забыть поставить


Эта страница в полной версии