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

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

 

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

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

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

Ответ 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($fdtrim($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($valstrpos($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

   
 
 автор: cheops   (20.02.2006 в 00:25)   письмо автору
 
   для: SoftTime   (17.02.2006 в 15:02)
 

Отличная читабельность, ситуация, когда у последней записи нет перевода строки - прекрасно обходится, однако использование в цикле конструкции
<?php
  $index 
array_rand($original);
?>

не самое эффективное решение, функция shuffle() справилась бы с ситуацией быстрее и эффективнее. Кроме того, скрипты не скупятся на память и запросто вводят множество временных массивов, что в прочем в условиях данной задачи в не имеет значения. Больше придраться не нешёл к чему :))) Скрипты работают так как от них требуется и отлично справляются со своей задачей.

   
 
 автор: udaf   (20.02.2006 в 01:31)   письмо автору
 
   для: SoftTime   (17.02.2006 в 15:02)
 


// Заполняю массив $copy[] строками без цифр, в нижнем регистре. 
  foreach ($original as $val) 
  { 
    $copy[] = strtolower(substr($val, strpos($val, " "))); 
  } 


зачем заполнять строками именно в нижнем регистре?

   
 
 автор: Necro   (20.02.2006 в 14:46)   письмо автору
 
   для: udaf   (20.02.2006 в 01:31)
 

Что бы сортировалось в алфавитном порядке, без этого PHP будет стоять выше Pascal-я.

   
Rambler's Top100
вверх

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