2011-04-19 64 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