|
|
|
| Ответ 008 на задачу N 7.
С условиями задачи можно ознакомится по ссылке.
//mixture.php
<?php
//открываем файл и помещаем его содержимое в массив
$file_array = file("data.txt");
//перемешиваем полученный массив
shuffle($file_array);
//открываенм файл для записи
$file_write = fopen("data.txt", "w");
//построчно записываем
foreach ($file_array as $sting)
{
fwrite($file_write, $sting);
}
//закрываем файл
fclose($file_write);
?>
|
//ordernum.php
<?php
//открываем файл и помещаем его содержимое в массив
$file_array = file("data.txt");
//сортируем массив в натуральном порядке
natsort($file_array);
//открываенм файл для записи
$file_write = fopen("data.txt", "w");
//построчно записываем
foreach ($file_array as $sting)
{
fwrite($file_write, $sting);
}
//закрываем файл
fclose($file_write);
?>
|
//orderalph.php
<?php
//прочитать файл в массив
$file_array = file("data.txt");
//новый массив для записи в файл
$new_file_array = array();
//разделяем буквы и цифры функцией explode
foreach($file_array as $string)
{
$new_string = explode(" ",$string);
$new_file_array[] = $new_string[1];
}
//сортируем новый массив
sort($new_file_array);
//открываенм файл для записи
$file_write = fopen("data.txt", "w");
//номер строки
$num=1;
foreach($new_file_array as $new_string)
{
$new_string = $num++." ".$new_string." \n";
fwrite($file_write, $new_string);
}
?>
|
http://www.softtime.ru/info/task.php?id_article=77 | |
|
|
|
|
|
|
|
для: SoftTime
(19.02.2006 в 21:19)
| | Всё очень аккуратно. Но после использования mixture.php получил следующее
2 PHP
7 C++
10 Assembler5 Java
6 Perl
1 Fort
3 JavaScript
4 ASP.NET
9 Fortran
8 Pascal
|
Это связано с тем, что в моём файле последняя запись не завершалась переводом строки, скрипт это не учитывает. После алфавитной сортировки получил следующее
1 ASP.NET
2 Assembler
3 C++
4 Fort
5 Fortran
6 Java
7 JavaScript
8 PHP
9 Pascal
10 Perl
|
Это немного не то, во первых затесался лишний перевод строки после 2 - это не хорошо. Во вторых сбита нумерация, языков, т.е. из этого файла я уже не восстановлю исходный, это не очень хорошо, так как на цифры как на первичные ключи могут ссылаться другие файлы. | |
|
|
|
|
|
|
|
для: cheops
(20.02.2006 в 00:45)
| | >Это связано с тем, что в моём файле последняя запись не
>завершалась переводом строки, скрипт это не учитывает. После
>алфавитной сортировки получил следующее
По началу я хотел использовать trim() но почемуто подумал что она удаляет все пробельные символы из строки, но ошибся. и не стал заморачиватся
Кроме этого требуется разработать файл orderalph.php, который бы сортировал языки программирования по алфавиту, не принимая во внимание цифры (в результирующем файле цифры, однако должны остаться).
я понял это как должны быть пронумерованы строки и без разницы как | |
|
|
|