【问题标题】:Undefined offset: 2 while using explode未定义的偏移量:使用爆炸时为 2
【发布时间】:2026-01-06 05:20:04
【问题描述】:

我有 $product_image='img1.png,img2.png,img3.png' 作为字符串,我在其中爆炸 $product_image 并将图像显示为 $pro_img[0], $pro_img[1] and $pro_img[2]

我得到错误

消息:未定义的偏移量:2

如果$pro_img[2] 没有找到任何图像。

我想使用foreach loop 来解决它,但我不知道如何使用foreach 来解决这个问题?

<?php $pro_img = explode(",",$product_image); ?>
<div class="tab-content" id="myTabContent">
  <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
    <div class="pro-large text-center">
      <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[0]; ?>" style="width: 50%;height: 35%;" alt="">
    </div>
  </div>
  <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
    <div class="pro-large text-center">
      <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[1]; ?>" style="width: 50%;height: 35%;" alt="">
    </div>
  </div>
  <div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">
    <div class="pro-large text-center">
      <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[2]; ?>" style="width: 50%;height: 35%;" alt="">
    </div>
  </div>
</div>
<ul class="nav product-img-tab" id="myTab" role="tablist">
  <li class="nav-item">
    <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">
      <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[0]; ?>" style="width: 50%;height: 96px;" alt="">
    </a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">
      <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[1]; ?>" style="width: 50%;height: 96px;" alt="">
    </a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">
      <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[2]; ?>" style="width: 50%;height: 96px;" alt="">
    </a>
  </li>
</ul>

【问题讨论】:

  • 手册中有一些关于如何使用foreach的示例。

标签: php codeigniter mysqli foreach


【解决方案1】:

由于您有多个部分(家庭/个人资料/联系人),我假设您总是希望显示有或没有图像,我建议改用isset

Isset 只检查 $pro_img 数组中是否存在键,您可以使用它来决定是否打印图像标签:

<?php
    $pro_img = explode(",",$product_image);
?>
<div class="tab-content" id="myTabContent">
    <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
        <div class="pro-large text-center">
            <?php if (isset($pro_img[0])) : ?>
                <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[0]; ?>" style="width: 50%;height: 35%;" alt="">
            <?php endif; ?>
        </div>
    </div>
    <div class="tab-pane fade" id="profile" role="tabpanel" aria-labelledby="profile-tab">
        <div class="pro-large text-center">
            <?php if (isset($pro_img[1])) : ?>
                <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[1]; ?>" style="width: 50%;height: 35%;" alt="">
            <?php endif; ?>
        </div>
    </div>
    <div class="tab-pane fade" id="contact" role="tabpanel" aria-labelledby="contact-tab">
        <div class="pro-large text-center">
            <?php if (isset($pro_img[2])) : ?>
                <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[2]; ?>" style="width: 50%;height: 35%;" alt="">
            <?php endif; ?>
        </div>
    </div>
</div>
<ul class="nav product-img-tab" id="myTab" role="tablist">
    <li class="nav-item">
        <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">
            <?php if (isset($pro_img[0])) : ?>
                <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[0]; ?>" style="width: 50%;height: 96px;" alt="">
            <?php endif; ?>
        </a>
    </li>
    <li class="nav-item">
        <a class="nav-link" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">
            <?php if (isset($pro_img[1])) : ?>
                <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[1]; ?>" style="width: 50%;height: 96px;" alt="">
            <?php endif; ?>
        </a>
    </li>
    <li class="nav-item">
        <a class="nav-link" id="contact-tab" data-toggle="tab" href="#contact" role="tab" aria-controls="contact" aria-selected="false">
            <?php if (isset($pro_img[2])) : ?>
                <img src="<?php echo base_url(); ?>resource/product/<?php echo $pro_img[2]; ?>" style="width: 50%;height: 96px;" alt="">
            <?php endif; ?>
        </a>
    </li>
</ul>

【讨论】:

  • $pro_img = explode(",",$product_image); foreach($pro_img as $row){ } 我想要这样 @Stanzi1791