У меня есть следующий div. Я хотел бы иметь mydiv1
, mydiv2
и mydiv3
. Возможно ли это сделать?
Код:
<?php for($i =1; $i <3; $i++):?> <div id="mydiv<?php $i?>" style="float:left"> <?php endfor;?>
Удалите внутренний цикл, и вы получите только 3 div.
если вы хотите динамически назначать id в div, выполните следующие действия:
$somearray = array( 'animal'=>'cat', 'place'=>'earth', 'food'=>'orange' ); $i=1; foreach ($somearray as $k=>$v){ echo '<div id="div'.$i.'">'. $v .'<div>'; $i++; }
В вашем коде вы получаете 9 элементов, потому что то, что вы делаете, – это первый цикл через $somearray
который 3 раза, и внутри этого цикла вы снова $somearray
3 раза, используя переменную $i
so 3 * 3 = 9. и вы получаете 9 разделов.
Используйте <?php echo $i; ?>
<?php echo $i; ?>
вместо <?php $i?>
.
Почему у вас есть 9 элементов? Потому что вы создаете девять элементов.
$somearray = array( 'animal'=>'cat', 'place'=>'earth', 'food'=>'orange' ); foreach ($somearray as $k=>$v){ for($i=1;$i<=3;$i++){ echo '<div id="div'.$i.'">'. $v .'<div>'; } }
Позвольте мне уточнить:
Вышеупомянутый блок кода равен этому набору кодовых блоков.
где $ somearray value = 'animal' => 'cat' делают это:
for($i=1;$i<=3;$i++){ echo '<div id="div'.$i.'">'. $v .'<div>'; }
а также
где $ somearray value = 'place' => 'earth' сделать это:
for($i=1;$i<=3;$i++){ echo '<div id="div'.$i.'">'. $v .'<div>'; }
а также
где $ somearray value = 'food' => 'orange' делают это:
for($i=1;$i<=3;$i++){ echo '<div id="div'.$i.'">'. $v .'<div>'; }
Все из-за этого:
foreach ($somearray as $k=>$v){ ... }
Вам не нужен внутренний цикл (3 x 3 = 9). Вам просто нужен счетчик, который вы увеличиваете на каждой итерации внешнего цикла:
<?php $somearray = array( 'animal'=>'cat', 'place'=>'earth', 'food'=>'orange' ); $counter = 1; foreach ($somearray as $k=>$v){ echo '<div id="div'.$counter .'">'. $v .'<div>'; $counter++; }
Вы должны дать, как,
<div id="mydiv<?php echo $i;?>" style="float:left">
это будет работать.
<?php for($i =1; $i <3; $i++){ echo <<<CODE <div id="mydiv$i" style="float:left;"> CODE; } ?>