Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод последней записи работы цикла for

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ext
Отправлено: 24 Апреля, 2012 - 01:23:24
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Доброго времени суток, как сделать, чтобы выводилась только последняя запись из цикла?

PHP:
скопировать код в буфер обмена
  1. for($k = 320, $i = 1; $k <= 7896; $k = $k * 1.1906 - 21, $i++) {
  2.   echo round($k)." - {$i}\n";
  3. }
 
 Top
ugin_root
Отправлено: 24 Апреля, 2012 - 04:57:54
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




PHP:
скопировать код в буфер обмена
  1. $last_string = '';
  2. for($k = 320, $i = 1; $k <= 7896; $k = $k * 1.1906 - 21, $i++) {
  3.   $last_string = round($k)." - {$i}\n";
  4.   //или
  5.   if($k == 7896){
  6.     echo round($k)." - {$i}\n";
  7.   }
  8. }
  9. echo $last_string;

(Отредактировано автором: 24 Апреля, 2012 - 05:00:32)

 
 Top
ext
Отправлено: 24 Апреля, 2012 - 05:47:56
Post Id


Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




ugin_root, Спасибо. Правда, только, вариант с условием не заработал.

(Отредактировано автором: 24 Апреля, 2012 - 05:48:39)

 
 Top
ugin_root
Отправлено: 24 Апреля, 2012 - 06:45:02
Post Id


Частый гость


Покинул форум
Сообщений всего: 134
Дата рег-ции: Май 2011  
Откуда: Киргизия


Помог: 5 раз(а)




Да точно там k может и не быть равным.
можно ещё и так, но это не совсем правильно
PHP:
скопировать код в буфер обмена
  1.  
  2. for($k = 320, $i = 1; $k <= 7896; $k = $k * 1.1906 - 21, $i++) {}
  3. echo round($k)." - {$i}\n";
 
 Top
eai
Отправлено: 25 Апреля, 2012 - 07:08:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Вообще у меня такое осчущение что ваша задача имеет чисто математическое решение, но так давно учил сие, что уже и не помню как Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $k = 320;
  4. $i = 1;
  5. $r = null;
  6. while($k <= 7896)
  7. {
  8.     $r = $k;
  9.     $k = $k * 1.1906 - 21;
  10.     $i++;
  11. }
  12.  
  13. echo round($r)." - {--$i}\n";
  14.  
  15.  


Я люблю FOR но не всегда имеет смысл его использовать, у код ненаглядный получется если несколько выражений в него пихать

Еще вариант
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $r = null;
  4. $k = 320;
  5.  
  6. for($i=1;$k<=7896;$i++)
  7. {
  8.   $r = $k;
  9.   $k = $k * 1.1906 - 21
  10. }
  11. echo round($r)." - {--$i}\n";
  12.  
  13.  


Еще много вариантов (пробежаться и по достижении условия сделать шаг назад например), если по скорости критично то нужно замеры делать, если нет, берете любой Подмигивание
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB