Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ответ 003 на задачу N 7
 
 автор: SoftTime   (16.02.2006 в 15:20)   письмо автору
 
 

Ответ 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

   
 
 автор: cheops   (20.02.2006 в 00:05)   письмо автору
 
   для: 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

   
 
 автор: DJ Paltus   (20.02.2006 в 12:30)   письмо автору
 
   для: cheops   (20.02.2006 в 00:05)
 

Я вижу, не только у меня такой прикол с алфавитной сортировкой, что все в строку пишется.
То есть, дома все работало. Я ж проверял, скрипты в разном порядке запускал.
Если что, у меня PHP Version 5.0.2 из комплекта Денвера, под винХР.
Если интересно, могу свой phpinfo() прислать.

   
 
 автор: cheops   (20.02.2006 в 13:40)   письмо автору
 
   для: DJ Paltus   (20.02.2006 в 12:30)
 

Хм... и мне это странным показалось - у меня 5.0.4 (правда не дервер, а исходные сервера).

   
 
 автор: DJ Paltus   (20.02.2006 в 18:37)   письмо автору
 
   для: cheops   (20.02.2006 в 13:40)
 

а по поводу скобок фигурных - у меня автоматический отступ в редакторе стоит, я так уже привык и деваться уже некуда )

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования