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
Форумы портала PHP.SU :: Версия для печати :: Вывод сообщения в конце цикла foreach
Форумы портала PHP.SU » » Вопросы новичков » Вывод сообщения в конце цикла foreach

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

1. Dezmont - 05 Декабря, 2011 - 15:18:03 - перейти к сообщению
Подскажите пожалуйста, как узнать о том, что цикл foreach заканчивается и вывести сообщение?
Т.е. у меня происходит перебор массива, выводит, предположим, $k=>$v 10 раз. И на последний, 10-ый раз, мне необходимо, чтобы скрипт вывел сообщение: Конец. Эт грубо))) Как проще всего это реализовать безо всяких доп конструкций и переменных?
2. Мелкий - 05 Декабря, 2011 - 15:21:29 - перейти к сообщению
Разместить "конец" после цикла?
3. Microteam - 05 Декабря, 2011 - 15:32:55 - перейти к сообщению
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.  
4. Dezmont - 05 Декабря, 2011 - 21:28:41 - перейти к сообщению
array_pop() извлекает и возвращает последнее значение параметра array, уменьшая размер array на один элемент. А мне нужен последний элемент....=/

З.Ы. Мне в самом цикле нужно проверить, после не катит. =(
5. DeepVarvar - 05 Декабря, 2011 - 22:36:28 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. foreach ($arr as $k => $v)
  2.     echo ($k == count($arr)-1)
  3.         ? "$k => $v --- Stop!" : "$k => $v --- More..";

Неужели это так сложно?
6. Самогонщик - 06 Декабря, 2011 - 04:34:48 - перейти к сообщению
DeepVarvar, для ассоциативных массивов не прокатит.
Я бы использовал обычный for
7. Dezmont - 06 Декабря, 2011 - 10:30:41 - перейти к сообщению
DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. ? "$k => $v --- Stop!" : "$k => $v --- More..";

Это что такое? Где можно про это почитать, а то даже не знаю куда в мануале с таким сунуться?
8. EuGen - 06 Декабря, 2011 - 10:31:34 - перейти к сообщению
Dezmont пишет:
З.Ы. Мне в самом цикле нужно проверить

Поясните, почему нельзя сделать это после.
9. Самогонщик - 06 Декабря, 2011 - 10:54:19 - перейти к сообщению
Dezmont пишет:
Это что такое? Где можно про это почитать, а то даже не знаю куда в мануале с таким сунуться?
http://ru[dot]wikipedia[dot]org/wiki/Тер[dot][dot][dot]словная_операция
10. Dezmont - 06 Декабря, 2011 - 11:08:49 - перейти к сообщению
EuGen пишет:
Поясните, почему нельзя сделать это после.


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

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


Спасибо!

 

Powered by ExBB FM 1.0 RC1