|
|
|
| Ответ 005 на задачу N 7.
С условиями задачи можно ознакомится по ссылке.
Пожалуйста, не просматривайте полученный файл в блокноте, потому как он тупой и мало что понимает.
mixture.php
<?php
if (is_file("txt.t")) {$original = file("txt.t");}
else {echo "файл не найден"; exit;}
$fd = fopen("txt.t", "w");
foreach ($original as $val)
{
$index = array_rand($original);
// Неизвестно заканчивалась-ли в исходном файле последняя строка переводом
// поэтому добовляем переводы строк самостоятельно.
fwrite($fd, trim($original[$index])."\n");
// Уничтожаем элемент массива, чтобы не выбрать его ещё раз.
unset($original[$index]);
}
fclose($fd);
?>
|
ordernum.php
<?php
if (is_file("txt.t")) {$original = file("txt.t");}
else {echo "файл не найден"; exit;}
natsort($original);
$fd = fopen("txt.t", "w");
foreach ($original as $val)
{
// Неизвестно заканчивалась-ли в исходном файле последняя строка переводом
// поэтому добовляем переводы строк самостоятельно.
$val = trim($val);
fwrite($fd, $val."\n");
}
fclose($fd);
?>
|
orderalph.php
<?php
if (is_file("txt.t")) {$original = file("txt.t");}
else {echo "файл не найден"; exit;}
// Заполняю массив $copy[] строками без цифр, в нижнем регистре.
foreach ($original as $val)
{
$copy[] = strtolower(substr($val, strpos($val, " ")));
}
natsort($copy);
$fd = fopen("txt.t", "w");
// Использую ключи отсортированного массива $copy для сортировки $original.
foreach ($copy as $key => $val)
{
// Неизвестно заканчивалась-ли в исходном файле последняя строка переводом
// поэтому добовляем переводы строк самостоятельно.
$original[$key] = trim($original[$key]);
fwrite($fd, $original[$key]."\n");
}
fclose($fd);
?>
|
http://www.softtime.ru/info/task.php?id_article=77 | |
|
|
|
|
|
|
|
для: SoftTime
(17.02.2006 в 15:02)
| | Отличная читабельность, ситуация, когда у последней записи нет перевода строки - прекрасно обходится, однако использование в цикле конструкции
<?php
$index = array_rand($original);
?>
|
не самое эффективное решение, функция shuffle() справилась бы с ситуацией быстрее и эффективнее. Кроме того, скрипты не скупятся на память и запросто вводят множество временных массивов, что в прочем в условиях данной задачи в не имеет значения. Больше придраться не нешёл к чему :))) Скрипты работают так как от них требуется и отлично справляются со своей задачей. | |
|
|
|
|
|
|
|
для: SoftTime
(17.02.2006 в 15:02)
| |
// Заполняю массив $copy[] строками без цифр, в нижнем регистре.
foreach ($original as $val)
{
$copy[] = strtolower(substr($val, strpos($val, " ")));
}
|
зачем заполнять строками именно в нижнем регистре? | |
|
|
|
|
|
|
|
для: udaf
(20.02.2006 в 01:31)
| | Что бы сортировалось в алфавитном порядке, без этого PHP будет стоять выше Pascal-я. | |
|
|
|