Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] как разбить массив


Recommended Posts

в цикле

<?php foreach($banners as $banner){?>

нужно разбить так, чтобы в каждом divе было по 2 значения.

я в программировании не силён. методом проб вышло так:

<div>
   <?php foreach($banners as $i => $banner){ if($i==2) break;  ?>
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
   <?php } ?>
</div>

<div>
   <?php foreach($banners as $i => $banner){ if($i==2) break;  ?>
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
   <?php } ?>
</div>

<div>
   <?php foreach($banners as $i => $banner){ if($i==2) break;  ?>
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
   <?php } ?>
</div>

<div>
   <?php foreach($banners as $i => $banner){ if($i==2) break;  ?>
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
   <?php } ?>
</div>

но таким образом в каждом dive выводятся только первые два елементы

foreach
<div>
1
2
</div>

<div>
1
2
</div>

<div>
1
2
</div> 

а нужно так:

foreach
<div>
1
2
</div>

<div>
3
4
</div>

<div>
5
6
</div> 
Надіслати
Поділитися на інших сайтах


Где учат такому способу кодирования?

 

 

При целочисленном делении на 2 остаток от деления = 0

Надіслати
Поділитися на інших сайтах

Хотел предложить по инкременту, а так, то используйте это и кодируйте как то правильней...

Надіслати
Поділитися на інших сайтах

в цикле

<?php foreach($banners as $banner){?>
нужно разбить так, чтобы в каждом divе было по 2 значения.

я в программировании не силён. методом проб вышло так:

<div>
   <?php foreach($banners as $i => $banner){ if($i==2) break;  ?>
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
   <?php } ?>
</div>

<div>
   <?php foreach($banners as $i => $banner){ if($i==2) break;  ?>
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
   <?php } ?>
</div>
...
trololololololo

<div>
<?php foreach ($banners as $banner_i => $banner) { ?>
<?php if (ceil(($banner_i+1)%2)==0) { ?></div><div><?php } /* если остаток от деления ($banner_i+1) на 2 равен 0 (нулю) - два баннера вывели - закрываем div и открываем новый. (+1 потому что ключи массива начинаются с нуля) */ ?>
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
<?php } ?>
</div>
Надіслати
Поділитися на інших сайтах

:-)

trololololololo

<div>
<?php foreach ($banners as $banner_i => $banner) { ?>
<?php if (ceil(($banner_i+1)%2)==0) { ?></div><div><?php } /* если остаток от деления ($banner_i+1) на 2 равен 0 (нулю) - два баннера вывели - закрываем div и открываем новый. (+1 потому что ключи массива начинаются с нуля) */ ?>
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" title="<?php echo $banner['title']; ?>" /></a>
<?php } ?>
</div>

Спасибо, все работает. Только в вашем решении в первом div выводит один баннер. дальше по два

Надіслати
Поділитися на інших сайтах


возможно $banner_i начинается с единицы - проверьте у себя.

если так - уберите там +1

убираю +1 и условие сразу выполняется (</div><div>). $banner_i начинается с нуля. В зависимости нету +1 или есть, условие выполняется сразу или через одну итерацию. В итоге один баннер или 0. Это только в первом div. Дальше всегда по два

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.