|
|
|
| Ответ 003 на задачу N 7.
С условиями задачи можно ознакомится по ссылке.
Файл с данными назовем "lng.txt", хотя его имя лучше было бы в задании описать.
Сортировка в случайном порядке:
mixture.php
<?php
if (!file_exists('lng.txt')) die("нужен файл 'lng.txt'");
$f=file("lng.txt"); //берем файл и суем в массив построчно
shuffle($f); //перемешиваем
$f2=fopen("lng.txt", "w"); //открываем файл для вывода
foreach ($f as $s){ //и каждую строчку
echo($s."<br />"); //показываем
fputs($f2, $s);} //и пишем в файл
fclose($f2); //завинчиваем крышку файла
?>
|
Сортировка по номерам:
ordernum.php
<?php
if (!file_exists('lng.txt')) die("нужен файл 'lng.txt'");
$f=file("lng.txt"); //берем файл и суем в массив построчно
natsort($f); //сортируем натурально, так смешнее
$f2=fopen("lng.txt", "w"); //открываем файл для вывода
foreach ($f as $s){ //и каждую строчку
echo($s."<br />"); //показываем
fputs($f2, $s);} //и пишем
fclose($f2); //завинчиваем крышку файла
?>
|
Сортировка по алфавиту:
orderalph.php
<?php
if (!file_exists('lng.txt')) die("нужен файл 'lng.txt'");
$f=file("lng.txt"); //берем файл и суем в массив построчно
foreach($f as $s){
$a=explode(" ",$s); //делим строки по пробелу
$num[]=$a[0]; //раскидываем цифры отдельно
$let[]=$a[1]; //и слова отдельно
}
array_multisort($let, $num); //взаимосортируем по словам
$f2=fopen("lng.txt", "w"); //открываем файл для вывода
for ($i=0; $i<count($num); $i++){ //и каждую строчку
print($num[$i]." ".$let[$i]."<br />");//показываем
fputs($f2, $num[$i]." ".$let[$i]); //и пишем в файл
}
fclose($f2); //завинчиваем крышку файла
?>
|
http://www.softtime.ru/info/task.php?id_article=77 | |
|
|
|
|
|
|
|
для: SoftTime
(16.02.2006 в 15:20)
| | Очень компактно, правда такая расстановка фигурных скобок не типична и может приводить к снижению читабельности. После использования mixture.php получил следующее
5 Java
2 PHP
8 Pascal
10 Assembler1 Fort
3 JavaScript
4 ASP.NET
9 Fortran
7 C++
6 Perl
|
Это связано с тем, что в моём файле последняя запись не завершалась переводом строки, скрипт это не учитывает. А после 6 Perl появился перевод строки.
Кроме того, не корректно презаписывается файл при алфавитной сортировке, я получил следующее содержимо файла, т.е. на весь файл остался лишь один перевод строки.
4 ASP.NET10 Assembler
7 C++1 Fort9 Fortran5 Java3 JavaScript2 PHP8 Pascal6 Perl
|
| |
|
|
|
|
|
|
|
для: cheops
(20.02.2006 в 00:05)
| | Я вижу, не только у меня такой прикол с алфавитной сортировкой, что все в строку пишется.
То есть, дома все работало. Я ж проверял, скрипты в разном порядке запускал.
Если что, у меня PHP Version 5.0.2 из комплекта Денвера, под винХР.
Если интересно, могу свой phpinfo() прислать. | |
|
|
|
|
|
|
|
для: DJ Paltus
(20.02.2006 в 12:30)
| | Хм... и мне это странным показалось - у меня 5.0.4 (правда не дервер, а исходные сервера). | |
|
|
|
|
|
|
|
для: cheops
(20.02.2006 в 13:40)
| | а по поводу скобок фигурных - у меня автоматический отступ в редакторе стоит, я так уже привык и деваться уже некуда ) | |
|
|
|