|
|
|
|
|
для: Unkind
(14.01.2008 в 13:48)
| | Можно проще:
<?php
function file_sort($a, $b) {
list (, $str1) = explode(":", $a);
list (, $str2) = explode(":", $b);
if ($str1 === $str2)
return 0;
return ($str1 < $str2) ? 1 : -1;
}
$file = file("file.txt");
$file = array_map("trim", $file);
usort($file, "file_sort");
print_r($file);
?>
|
| |
|
|
|
|
|
|
|
для: fiper
(14.01.2008 в 12:48)
| | Лучше использовать СУБД.
<?php
function array_sort($a)
{
$s = false;
while( $s == false )
{
$s = true;
for($i = 0; $i < count($a) - 1; $i++)
{
if( $a[$i][1] < $a[$i + 1][1] )
{
list($a[$i + 1][1], $a[$i][1]) = array($a[$i][1], $a[$i + 1][1]);
$s = false;
}
}
}
return $a;
}
$array = file('file.txt');
$array = array_map(create_function('$a', 'return explode(":", chop($a));'), $array);
$array = array_sort($array);
$array = array_map(create_function('$a', 'return implode(":", $a);'), $array);
$fh = fopen('file.txt', 'wb');
fwrite($fh, implode("\r\n", $array));
fclose($fh);
?>
|
| |
|
|
|
|
|
|
|
для: fiper
(14.01.2008 в 01:32)
| | Кто поможет? | |
|
|
|
|
|
|
| В файле хранится приблизительно следующее
1:4:4
2:6:3
3:9:1
4:1:3
Нужно отсоритировать по 2 значению в порядке убывания. Пробовал array_multisort() и rsort самого файла.Я так понимаю, что нужно в цике поместить значения в массив, затем отсортировать их и вывести, но как это сделать?
Получиться должно вот так:
3:9:1
2:6:3
1:4:4
4:1:3 | |
|
|
|
|