Цикл PHP

Старый mweb

Модератор: [mweb team]

Цикл PHP

Сообщение ViperMobster Ср мар 04, 2009 15:58

Код: Выделить всё
<?php

// Есть такой массив, количество элементов считаем в конце

$picture[0] = "Картинка1";
$picture[1] = "Карнитка2";
$picture[2] = "Картинка3";
$picture[3] = "Картинка4";
$picture[4] = "Картинка5";

$array_length = count($picture);

// Теперь выводим каждую картинку через цикл for

for ($i=0; $i<$array_length; $i++) {

echo $picture[$i]."<br>";

}

?>

В результате получаем:
Код: Выделить всё
Картинка1
Карнитка2
Картинка3
Картинка4
Картинка5

Вопрос состоит в том, чтоб сделать так, чтоб цикл выводил по 2 записи в строке:
Код: Выделить всё
Картинка1 Карнитка2
Картинка3 Картинка4
Картинка5
Аватара пользователя
ViperMobster
Прохожий
 
Сообщения: 36
Зарегистрирован: Вт авг 14, 2007 8:53

Re: Цикл PHP

Сообщение Padonak Ср мар 04, 2009 17:16

$temp = "";
$flag = 0;
for ($i=0; $i<$array_length; $i++) {
$temp .= $picture[$i]." ";
$flag++;
if($flag == 2){echo $temp."<br>"; $temp = ""; $flag = 0;}
}

а так не прокатит?
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Цикл PHP

Сообщение Skay Ср мар 04, 2009 19:34

Padonak
а ты не думал, что можно сам индекс цикла на четность/нечетность проверять?) зачем эта дополнительная переменная)
money + sleep = awesome
Аватара пользователя
Skay
Хронический Астматик
 
Сообщения: 1373
Зарегистрирован: Вс мар 10, 2002 1:01

Re: Цикл PHP

Сообщение Jedi Ср мар 04, 2009 21:04

for ($i=0; $i<$array_length; $i++) {
echo $picture[$i];
if($i%2) {echo "<br>"; }
}
Аватара пользователя
Jedi
Хронический Астматик
 
Сообщения: 1852
Зарегистрирован: Вс сен 08, 2002 0:01
Откуда: Russia

Re: Цикл PHP

Сообщение Padonak Чт мар 05, 2009 1:02

Скай не думал :-) результат же тот какой просили :-)
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Цикл PHP

Сообщение ViperMobster Чт мар 05, 2009 2:40

Ребята, спасибо огромное! Все работает -06- -22-
Аватара пользователя
ViperMobster
Прохожий
 
Сообщения: 36
Зарегистрирован: Вт авг 14, 2007 8:53

Re: Цикл PHP

Сообщение ViperMobster Чт мар 05, 2009 6:15

Такой еще не скромный вопрос, а если нужно выводить не по 2 картинки, а скажем по 3 или четыре? -40-
Аватара пользователя
ViperMobster
Прохожий
 
Сообщения: 36
Зарегистрирован: Вт авг 14, 2007 8:53

Re: Цикл PHP

Сообщение Padonak Чт мар 05, 2009 9:37

интересно послушать Ская особенно про три картинки -03-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Цикл PHP

Сообщение Berezkin Чт мар 05, 2009 12:01

Ну так и искать остаток от деления на три или на четыре, ели остаток равен нулю то вставлять перенос или что там надо...
Windows как презерватив - никому не нравится, но все пользуются.
Аватара пользователя
Berezkin
Заядлый `курильщик`
 
Сообщения: 612
Зарегистрирован: Вт дек 19, 2006 12:39
Откуда: Москоу

Re: Цикл PHP

Сообщение ViperMobster Чт мар 05, 2009 14:58

Код: Выделить всё
<?php

// Есть такой массив, количество элементов считаем в конце

$picture[0] = "Картинка1";
$picture[1] = "Карнитка2";
$picture[2] = "Картинка3";
$picture[3] = "Картинка4";
$picture[4] = "Картинка5";
$picture[5] = "Картинка6";
$picture[6] = "Картинка7";
$picture[7] = "Картинка8";
$picture[8] = "Картинка9";
$picture[9] = "Картинка10";
$picture[10] = "Картинка11";

$array_length = count($picture);

// Теперь выводим каждую картинку через цикл for

for ($i=0; $i<$array_length; $i++) {

echo $picture[$i].$back;

if ($i % 3 == 0) {

echo ("<br>");

}
}

?>

Сделал так, вроде все получается, но остаток в первом элементе массива тоже равен нулю и он вставляет br после первого элемента. Получается так:
Код: Выделить всё
Картинка1
Карнитка2Картинка3Картинка4
Картинка5Картинка6Картинка7
Картинка8Картинка9Картинка10
Картинка11

А дальше все как нужно. То есть как я понимаю, просто нужно отказаться от первого элемента массива или есть еще какой-нибудь способ?
Аватара пользователя
ViperMobster
Прохожий
 
Сообщения: 36
Зарегистрирован: Вт авг 14, 2007 8:53

Re: Цикл PHP

Сообщение Padonak Чт мар 05, 2009 17:07

я конечно тупой даун но я бы сделал так:

if ( $i > 0 && ($i % 3 == 0) )...
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Цикл PHP

Сообщение Padonak Чт мар 05, 2009 19:58

Скай чувак непрошибаемый на мои падъйобйки не повелся :-) надо таких барсуков отлавливать и заставлять чонить писать на форуме а то у нас тут образовался какой-то непонятный расклад: пишут в основном четверо плюс иногда серанет Алкипер и мертвые с косами стоят.. к тому же один нестабильный камрад периодически впадает в олкокому и затихает надолго. даже злобный Кост исчез. про пелотак я уже вобще молчу... имхуецо мне надо как-то ситуацию оживить
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Цикл PHP

Сообщение ViperMobster Пт мар 06, 2009 14:09

Padonak писал(а):if ( $i > 0 && ($i % 3 == 0) )...

Попробовал, но получается, что результат выполнения кода выглядит так:
Код: Выделить всё
Картинка1 Карнитка2 Картинка3 Картинка4
Картинка5 Картинка6 Картинка7
Картинка8 Картинка9 Картинка10
Картинка11

То есть в первом ряду четыре картинки, а дальше все как нужно, по три. Но я таки поборол эту проблему не знаю каким образом, но у меня получилось:
Код: Выделить всё
if (($i+1) % 3 == 0)...

Вот так получается все правильно -01-
P.S.
Padonak писал(а):я конечно тупой даун но я бы сделал так:

Я никого не хотел обидеть этим постом, просто иногда на простых вещах получаются загвоздки.
Аватара пользователя
ViperMobster
Прохожий
 
Сообщения: 36
Зарегистрирован: Вт авг 14, 2007 8:53

Re: Цикл PHP

Сообщение Padonak Пт мар 06, 2009 17:26

да я пхп не разумею так что я тупой даун и есть и прекрасно это осознайу -02- я вобще сонтехнег
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Цикл PHP

Сообщение kost Пн апр 13, 2009 14:04

Нахер считать количество элементов массива, и писать цикл for, когда есть прекрасный foreach?

Правда, придется счетчик запускать вручную, как было предложено в одном из первых комментариев.
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Re: Цикл PHP

Сообщение Alkeeper Вт апр 14, 2009 9:32

kost писал(а):Нахер считать количество элементов массива, и писать цикл for, когда есть прекрасный foreach?

Или когда есть CSS =)
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Re: Цикл PHP

Сообщение Alkeeper Вт апр 14, 2009 9:44

Решение почти без цикла + CSS:
Код: Выделить всё
   function my_callback($w){
      static $i;
      if(!isset($i)) $i = 0;
      echo sprintf("<li id=\"li-${i}\">%s</li>", $w);
      $i++;
   }
   $w = array('картинка1', 'картинка2', 'картинка3');
   echo "<ul>";
   array_walk($w, 'my_callback');
   echo "</ul>";


Дальше CCS'ом форматим LI, по ширине относительно UL, чтоб они падали нужным образом.
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Re: Цикл PHP

Сообщение Skay Вт апр 14, 2009 15:34

Alkeeper писал(а):Решение почти без цикла + CSS:
Код: Выделить всё
   function my_callback($w){ echo sprintf("<li id=\"li-${i}\">%s</li>", $w);}
   $w = array('картинка1', 'картинка2', 'картинка3');
   echo "<ul>";
   array_walk($w, 'my_callback');
   echo "</ul>";


Дальше CCS'ом форматим LI, по ширине относительно UL, чтоб они падали нужным образом.



ну дык, вопрос стоял "сделать так, чтоб цикл выводил по 2 записи в строке". Ни о каких элементах html речи вообще не шло, может он в файл хочет эти записи выводить )
money + sleep = awesome
Аватара пользователя
Skay
Хронический Астматик
 
Сообщения: 1373
Зарегистрирован: Вс мар 10, 2002 1:01

Re: Цикл PHP

Сообщение Alkeeper Вт апр 14, 2009 15:52

Skay писал(а):может он в файл хочет эти записи выводить )

Бессмысленная задача =)
Однако, приведенный в начале код как бы говорит нам, что это выдача в браузер.
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Re: Цикл PHP

Сообщение kost Вт апр 14, 2009 16:15

Alkeeper, CSS -- это понятно, но можно повредить психику топикстартера.

Там, наверное, сложные расчеты по вставлению <tr></tr> еще происходят.
Аватара пользователя
kost
Заядлый `курильщик`
 
Сообщения: 701
Зарегистрирован: Ср апр 16, 2003 16:56
Откуда: Санкт-Петербург

Re: Цикл PHP

Сообщение Skay Вт апр 14, 2009 17:19

kost
=)))
money + sleep = awesome
Аватара пользователя
Skay
Хронический Астматик
 
Сообщения: 1373
Зарегистрирован: Вс мар 10, 2002 1:01

Re: Цикл PHP

Сообщение Padonak Ср апр 15, 2009 9:21

-08- што вы за люди такие жэстокие? подгорные тролли какие-то -26-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону

Re: Цикл PHP

Сообщение Alkeeper Ср апр 15, 2009 13:29

Padonak
За тролля ответишь!
80 лет в интернете.
Аватара пользователя
Alkeeper
Экс-курильщик
 
Сообщения: 4183
Зарегистрирован: Вт ноя 13, 2001 1:01
Откуда: mweb

Re: Цикл PHP

Сообщение Padonak Ср апр 15, 2009 16:05

Alkeeper писал(а):Padonak
За тролля ответишь!


какие мы мнительныйе Изображение -13-
Uncaught TypeError: Изображение

Изображение
Аватара пользователя
Padonak
Философ-разговорник
 
Сообщения: 3872
Зарегистрирован: Вт дек 13, 2005 3:23
Откуда: Ростов-на-Дону


Вернуться в Архив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 42