PHP Loop Вопрос - PullRequest
       6

PHP Loop Вопрос

0 голосов
/ 28 сентября 2010

У меня есть приложение, которое содержит страницу галереи загруженных пользователем изображений.Я пытаюсь отобразить изображения на странице с помощью цикла foreach, но у меня возникли некоторые проблемы с построением цикла foreach.

Это способ формирования HTML

<div class="item">
     <ul>
     <li><a href="images/gallery/love1.jpg" rel="example1" ><img src="images/gallery/thumb_love1.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/love2.jpg" rel="example1" ><img src="images/gallery/thumb_love2.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/love3.jpg" rel="example1" ><img src="images/gallery/thumb_love3.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/love4.jpg" rel="example1"><img src="images/gallery/thumb_love4.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/love5.jpg" rel="example1"  ><img src="images/gallery/thumb_love5.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/love6.jpg" rel="example1"><img src="images/gallery/thumb_love6.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/life1.jpg" rel="example1" ><img src="images/gallery/thumb_life1.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/life2.jpg" rel="example1"><img src="images/gallery/thumb_life2.jpg" alt="#" /></a></li>
     <li><a href="images/gallery/life3.jpg" rel="example1"><img src="images/gallery/thumb_life3.jpg" alt="#" /></a></li>
     </ul>
    </div><!-- end item -->
*.1005 * Таким образом, в основном, когда LI поражает 9 предметов, разбейте и запустите новый DIV класса = "item"

Вот код PHP, с которым я пытался работать

<?php
                $x = range(1,100);
                $counter = 1;
                foreach($x as $item):
                if($item == 9) {
            ?>
                <div class="item">
                    <ul>
                        <?php foreach($pictures->result() as $p): ?>
                         <li><a href="images/gallery/<?=$p->category;?>/<?=$p->photo_name;?>" rel="example1" ><img src="images/gallery/<?=$p->category;?>/thumb_<?=$p->photo_name;?>" alt="#" /></a></li>
                    <?php endforeach; ?>
                    </ul>
                </div><!-- end item -->
                <?php $counter = 1; 
                } else {
                    $counter++;
                } ?>
            <?php endforeach; ?>

Я перепробовал все, но не могу понять, как заставить это работать.Заранее спасибо за любую помощь!

Ответы [ 3 ]

1 голос
/ 28 сентября 2010

Почему вы начинаете новый div? Похоже, это должен быть весь список. Таким образом, вы бы поместили все изображения в один список и управляли их макетом с помощью CSS.

Если это неверно, то вы хотите использовать array_chunk

непроверенный ...

$picture_chunks = array_chunk( $pictures->result(), 9 ); // split the long array into a multidimensional array with 9 objects in each

<?php foreach( $picture_chunks as $chunk ): ?> // loop through the outer array creating the <div><ul></ul></div>
<div class="item">
    <ul>
    <?php foreach( $chunk as $p ): ?> //loop through the inner array creating the LIs
        <li><a href="images/gallery/<?=$p->category;?>/<?=$p->photo_name;?>" rel="example1" ><img src="images/gallery/<?=$p->category;?>/thumb_<?=$p->photo_name;?>" alt="#" /></a></li>
    <?php endforeach; ?>
    </ul>
</div>
<?php endforeach; ?>
0 голосов
/ 28 сентября 2010

Я думаю, что вы, может быть, слишком усложняете. попробуйте ниже. Я не добавил ваши переменные галереи, так как не смог их протестировать, но все должно работать так, как вы хотели.

        <div class="item"> <ul>
<?php
    foreach(range(1,100) as $item){
        if($item%9 == 0){
?></ul></div>
        <div class="item"> <ul>
<?php   } ?>
    <li> insert gallery output here <?php echo $item ?></li>
<?php   
    }

?>          
</ul></div>
0 голосов
/ 28 сентября 2010

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

Ниже полностью не проверено и, безусловно, неверно, но идея в том, что когда ваш $ p делится на 9, вы можете сделать что-то особенное, например закрыть и открыть новый div.

for($i=0;$i<10;$i++)
{
  if($i % 9)
  {
   <li><a href="images/gallery/<?=$p->category;?>/<?=$p->photo_name;?>" rel="example1" ><img src="images/gallery/<?=$p->category;?>/thumb_<?=$p->photo_name;?>" alt="#" /></a></li>
   echo '</div>;
   echo '<div>';
  }else{
    <li><a href="images/gallery/<?=$p->category;?>/<?=$p->photo_name;?>" rel="example1" ><img src="images/gallery/<?=$p->category;?>/thumb_<?=$p->photo_name;?>" alt="#" /></a></li>
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...