初始foreach是1而不是0

时间:2015-06-06 06:52:08

标签: php

我试图开始'foreach',但它从1开始而不是0。为什么这样,我该如何解决?

<?php $i = 0;
foreach ($this->images as $image) {
    $i++;
    $src_image_thumb = Bt_propertyHelper::getPathImage($image->item_id, 'ssthumb', $image->filename, $this‌​->category->id); ?> 
    <li data-uk-slideshow-item="<?php echo "$i"; ?>">
        <img alt="<?php echo $image->title; ?>" src="<?php echo $src_image_thumb; ?>">
    </li> 
<?php } ?>

我知道这可能是相当obvius但我很新手。

2 个答案:

答案 0 :(得分:1)

首先使用$i然后递增它。这样做 -

$i = 0;
foreach ($this->images as $image) {
     echo "<li id-photo='$i'>Values...</li>";
     $i++;
}

对于你的代码应该是 -

<?php 
  $i = 0; 
  foreach ($this->images as $image) {  
    $src_image_thumb = Bt_propertyHelper::getPathImage($image>item_id,'ssthumb',$image->filename,$this‌​->category->id); 
?> 
  <li data-uk-slideshow-item="<?php echo "$i";?>">
    <img alt="<?php echo $image->title; ?>" src="<?php echo $src_image_thumb; ?>">
  </li> 
<?php 
   $i++;
} 
?>

答案 1 :(得分:0)

$i++放在循环的末尾。它在foreach循环的顶部递增,所以当你访问它时,它将从1开始而不是0。

编辑以澄清。如果您希望$i从0开始,请使用此选项。您也可以在-1处启动$i,并保持代码不变。

<?php
$i = 0;
foreach ($this->images as $image) {
    $src_image_thumb = Bt_propertyHelper::getPathImage($image->item_id,'ssthumb',$image->filename,$this‌​->category->id);
    ?>
    <li data-uk-slideshow-item="<?php echo $i;?>">
        <img alt="<?php echo $image->title; ?>" src="<?php echo $src_image_thumb; ?>">
    </li>
<?php
    $i++;
}
?>