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 :: Вывод сообщения в конце цикла foreach

 PHP.SU

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


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

> Без описания
Dezmont
Отправлено: 05 Декабря, 2011 - 15:18:03
Post Id



Частый гость


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


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




Подскажите пожалуйста, как узнать о том, что цикл foreach заканчивается и вывести сообщение?
Т.е. у меня происходит перебор массива, выводит, предположим, $k=>$v 10 раз. И на последний, 10-ый раз, мне необходимо, чтобы скрипт вывел сообщение: Конец. Эт грубо))) Как проще всего это реализовать безо всяких доп конструкций и переменных?
 
 Top
Мелкий Супермодератор
Отправлено: 05 Декабря, 2011 - 15:21:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Разместить "конец" после цикла?


-----
PostgreSQL DBA
 
 Top
Microteam
Отправлено: 05 Декабря, 2011 - 15:32:55
Post Id



Гость


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


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




PHP:
скопировать код в буфер обмена
  1.  
  2. $foo = array("Строка1","Строка2", "Строка3","Строка4","Строка5", "Строка6","Строка7","Строка8", "Строка9", "Строка10");
  3.  
  4.  
  5. $t = array_pop($foo);
  6. foreach ($foo as $string)
  7. if ($t == $string)
  8. print("Конец. Эт грубо");
  9. else
  10. print($string."<br>");
  11.  


-----
int i = 6; ++i + i++ = ?
 
 Top
Dezmont
Отправлено: 05 Декабря, 2011 - 21:28:41
Post Id



Частый гость


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


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




array_pop() извлекает и возвращает последнее значение параметра array, уменьшая размер array на один элемент. А мне нужен последний элемент....=/

З.Ы. Мне в самом цикле нужно проверить, после не катит. =(
 
 Top
DeepVarvar Супермодератор
Отправлено: 05 Декабря, 2011 - 22:36:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




PHP:
скопировать код в буфер обмена
  1. foreach ($arr as $k => $v)
  2.     echo ($k == count($arr)-1)
  3.         ? "$k => $v --- Stop!" : "$k => $v --- More..";

Неужели это так сложно?
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 04:34:48
Post Id



Посетитель


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


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




DeepVarvar, для ассоциативных массивов не прокатит.
Я бы использовал обычный for
 
 Top
Dezmont
Отправлено: 06 Декабря, 2011 - 10:30:41
Post Id



Частый гость


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


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




DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. ? "$k => $v --- Stop!" : "$k => $v --- More..";

Это что такое? Где можно про это почитать, а то даже не знаю куда в мануале с таким сунуться?
 
 Top
EuGen Администратор
Отправлено: 06 Декабря, 2011 - 10:31:34
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Dezmont пишет:
З.Ы. Мне в самом цикле нужно проверить

Поясните, почему нельзя сделать это после.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Самогонщик
Отправлено: 06 Декабря, 2011 - 10:54:19
Post Id



Посетитель


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


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




Dezmont пишет:
Это что такое? Где можно про это почитать, а то даже не знаю куда в мануале с таким сунуться?
http://ru[dot]wikipedia[dot]org/wiki/Тер[dot][dot][dot]словная_операция
 
 Top
Dezmont
Отправлено: 06 Декабря, 2011 - 11:08:49
Post Id



Частый гость


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


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




EuGen пишет:
Поясните, почему нельзя сделать это после.


Я хотел проверить в самом цикле, чтобы избежать лишнего оператора IF. В итоге, у меня ничего не получилось. Все конструкции выстраиваемые в цикле foreach, получались наааамного нагромождённее, чем единственный if. В итоге сделал IF и проверил после цикла.)))
У меня по-моему синдром преждевременной оптимизации))))) Ещё не дописал код, чтобы он на все 100% работал, а уже пытаюсь уменьшить его количество и непойми чё сделать...

Самогонщик пишет:
http://ru.wikipedia.org/wiki/Тернарная_условная_операция


Спасибо!
 
 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