2011-04-19 60 views
0

我想要为每个项目制作幻灯片。在Foreach循环中的PHP不同的数组?

它只与第一个一起工作,对于其他人不起作用。

任何想法我做错了什么?

我的代码:

<?php 
      // check $items variable exists and is not empty 
      if(isset($items) && !empty($items)) : 
       // init item count 
       $count = 1; 
      ?> 
      <div class="shelf"> 

       <?php foreach($items as $key=>$item): ?> 
        <?php 
        // calculate if this item is the last on the shelf 
        // if item number can be divided by 5 with no remainders 
        $last_item = ((($count) % 5 == 0)? 'item-last' : ''); 
        ?> 

        <div class="item <?php echo $last_item; ?>"> 
         <a href="/items/view/<?php echo $item['Item']['slug']; ?>"> 
         <p><?php echo $item['Item']['name'] ?></p> 




        <div id="CustomSlideshow"> 


<?php 
if ($item['Item']['vidsite'] = 'Pornhub') { 

for($i=1;$i<=16;$i++) { 
    $array[] = str_replace('.jpg',sprintf("%01d",$i).'.jpg',$item['Item']['vidimgdir']); 
} ?> 
<img src="<?php echo($array[0]); ?>"/> 
<img src="<?php echo($array[1]); ?>"/> 
<img src="<?php echo($array[2]); ?>"/> 
<img src="<?php echo($array[3]); ?>"/> 
<img src="<?php echo($array[4]); ?>"/> 
<img src="<?php echo($array[5]); ?>"/> 
<img src="<?php echo($array[6]); ?>"/> 
<img src="<?php echo($array[7]); ?>"/> 
<img src="<?php echo($array[8]); ?>"/> 
<img src="<?php echo($array[9]); ?>"/> 
<img src="<?php echo($array[10]); ?>"/> 
<img src="<?php echo($array[11]); ?>"/> 
<img src="<?php echo($array[12]); ?>"/> 
<img src="<?php echo($array[13]); ?>"/> 
<img src="<?php echo($array[14]); ?>"/> 
<img src="<?php echo($array[15]); ?>"/> 
<?php 
$array=array(); 
} ?> 


</div>      

         </a> 
        </div> 

        <?php 
        // if this is the last item, close the shelf div and create a new one 
        if(!empty($last_item)) { 
         echo '<div class="clear"></div>'; 
         echo '</div>'; 
         echo '<div class="shelf">'; 
        } 
        ?> 
       <?php $count++; ?> 
       <?php endforeach; ?> 

回答

1
if ($item['Item']['vidsite'] = 'Pornhub') { 

我的猜测是,你已经忘记了一个等号,因此您的代码一直分配相同的价值$item['Item']['vidsite']
一个等号(=)为该项赋值,两个(==)比较操作数,因此您应该用==替换=
也许你已经知道这一点,只是打错了。别担心,我也曾经犯过这个错误。这一个

for($i=1;$i<=16;$i++) { 
    $array[] = str_replace('.jpg',sprintf("%01d",$i).'.jpg',$item['Item']['vidimgdir']); 
} ?> 
<img src="<?php echo($array[0]); ?>"/> 
<img src="<?php echo($array[1]); ?>"/> 
<img src="<?php echo($array[2]); ?>"/> 
<img src="<?php echo($array[3]); ?>"/> 
<img src="<?php echo($array[4]); ?>"/> 
<img src="<?php echo($array[5]); ?>"/> 
<img src="<?php echo($array[6]); ?>"/> 
<img src="<?php echo($array[7]); ?>"/> 
<img src="<?php echo($array[8]); ?>"/> 
<img src="<?php echo($array[9]); ?>"/> 
<img src="<?php echo($array[10]); ?>"/> 
<img src="<?php echo($array[11]); ?>"/> 
<img src="<?php echo($array[12]); ?>"/> 
<img src="<?php echo($array[13]); ?>"/> 
<img src="<?php echo($array[14]); ?>"/> 
<img src="<?php echo($array[15]); ?>"/> 

: - )


顺便说一句,如果我是你,我将以下代码

for($i=0;$i<=15;$i++) { 
    $array[] = str_replace('.jpg',sprintf("%01d",$i).'.jpg',$item['Item']['vidimgdir']); 
    echo '<img src="'.$array[$i].'"/>'; 
} ?> 

短得多。

+0

非常感谢,现在正在工作.. – grosseskino 2011-04-19 15:00:55