Задачка для знатоков. Цикл + присвоение тегов
1.
ШЕДЕВР (29.09.2012 / 13:02)
[i]Столкнулся с проблемой... Решить никак не могу. Прочтите, айда задачка под ваши зубки :-)[i]
Запускаем цикл например от 1 до 999
for($i=1;$i<=999;$i++){
echo $i."<br>";
}
Вывод будет таким:
1
2
3
4
5
6
7 ... и так до 999...
Как сделать чтобы перед ID 1,5,9,13 и т.п. (то есть начиная с первой и после каждых 4 строк) ставилось например тег <h1>,
Далее, на ID 2, 6, 10, 14 и т.п. (то есть начиная со второй и после каждых 4 строк) ставился тег например <h2>,
Далее, на ID 3, 7, 11, 15 и т.п. (то есть начиная с третьей и после каждых 4 строк) ставился тег например <p>,
Далее, на ID 4, 8, 12, 16 и т.п. (то есть начиная с четвертой и после каждых 4 строк) ставился тег например <span>,
Получится что 1,2,3,4 это один блок, далее, 5,6,7,8 - след блок, 9, 10, 11, 12 - другой блок и т.к.....
Вывод так будет:
<h1>1<br>
<h2>2<br>
<p>3<br>
<span>4<br>
<h1>5<br>
<h2>6<br>
<p>7<br>
<span>8<br>
и так далее...... Кстати, код может обрываться... например количество строк может быть 7 или то количество которое не соответсвует четверкам, и это НОРМАЛЬНО если код будет НАПРИМЕР таким если строк всего 5:
<h1>1<br>
<h2>2<br>
<p>3<br>
<span>4<br>
<h1>5<br>
P.S. Это конечно можно тупо в цикле прописать:
if($i=="1" or $i=="5" or $i=="9" or $i=="13" и т.п....
но это будет банально и код дохреначий будет, потому что цикл большой...
2.
Михаил (29.09.2012 / 13:15)
<?
for($i=1;$i<=999;$i++){
echo '<h1>'.$i++.'</h1>';
echo '<h2>'.$i++.'</h2>';
echo '<p>'.$i++.'</p>';
echo '<span>'.$i.'</span>';
}
?>
3.
ШЕДЕВР (29.09.2012 / 16:17)
ingate, а если записей 6 или 7? он доводит их всех до четвертой.... 4,8,12 и т.п.
4.
Артур (29.09.2012 / 16:38)
$i % 2 == 0
$i % 3 == 0
$i % 4 == 0
else
5.
ШЕДЕВР (29.09.2012 / 16:45)
4.
Башка, спасибо! а можно ЧУТЬ по подробней как это использовать?
6.
Артур (29.09.2012 / 16:48)
<?php
for($i=1;$i<=999;$i++){
if(!($i % 4)){
echo "<span>$i</span><br/>";
}
elseif(!($i % 3)){
echo "<p>$i</p><br/>";
}
elseif(!($i % 2)){
echo "<h2>$i</h2><br/>";
}
else{
echo "<h1>$i</h1><br/>";
}
}
7.
ШЕДЕВР (29.09.2012 / 16:53)
Башка (29 Сентября 2012 / 21:48)
<?php
for($i=1;$i<=999;$i++){
if(!($i % 4)){
echo "<span>$i</span><br/>";
}
elseif(!($i % 3)){
echo "<p>$i</p><br/>";
}
elseif(!($i % 2)){
echo "<h2>$i</h2><br/>";
}
else{
echo "<h1>$i</h1><br/>";
}
}
и выводится следующее:
a 1
b 2
c 3
d 4
a 5
c 6
a 7
d 8
c 9
b 10
a 11
d 12
a 13 и т.п.
должно везде идти A B C D... поставь перед тегами A B C D... они не по порядку идут
8.
Артур (29.09.2012 / 17:04)
<?php
for($i=1, $j=0;$i<=15;$i++, $j++){
if($j == 0){
echo "a $i \n";
}
elseif($j == 1){
echo "b $i \n";
}
elseif($j == 2){
echo "c $i \n";
}
else{
echo "d $i \n";
$j = -1;
}
}
9.
Петр (30.09.2012 / 10:15)
На мой взгляд, лучше сделать, как во втором сообщении.
<?php
$i=0; $end=21;
while($i!=$end){
echo 1, $i++, '<br/>';
if($i==$end) break;
echo 2, $i++, '<br/>';
if($i==$end) break;
echo 3, $i++, '<br/>';
//и т.д.
}
?>
10.
Михаил (30.09.2012 / 12:33)
3.
ПроХраммист,
<?
$count = 7;
for($i=1;$i<=$count;$i++){
if ($i <= $count) echo '<h1>'.$i++.'</h1>';
if ($i <= $count) echo '<h2>'.$i++.'</h2>';
if ($i <= $count) echo '<p>'.$i++.'</p>';
if ($i <= $count) echo '<span>'.$i.'</span>';
}
?>
URL:
https://visavi.net/topics/34630