【问题标题】:Limiting a foreach loop to the first array将 foreach 循环限制为第一个数组
【发布时间】:2023-04-06 01:03:01
【问题描述】:

这是我的代码:

<?php
         foreach ($productsRecord['images'] as $upload):?>
          <?php if ($upload['hasThumbnail']): ?>
            <a href="<?php echo $upload['urlPath'] ?>" rel="lightbox" class="imgborder" title="<?php echo $productsRecord['name'] ?>"><img src="<?php echo $upload['urlPath'] ?>"  alt="" /></a><br />



          <?php endif ?>
        <?php endforeach ?>

我将如何将结果限制为仅第一个结果,我会使用中断吗?声明?

干杯

【问题讨论】:

  • 你能详细说明一下吗?你想要$productsRecord['images'] 的第一个元素吗?
  • 是的,我只想显示第一张图片。
  • 那么直接使用数组的第一个元素..为什么你甚至需要循环一个元素?

标签: php arrays loops foreach limit


【解决方案1】:

尝试使用 current()

你的代码应该是这样的:

<?php reset($productsRecord['images']); ?>
<?php $upload = current($productsRecord['images']);?>
<?php if ($upload['hasThumbnail']): ?>
    <a href="<?php echo $upload['urlPath'] ?>" rel="lightbox" class="imgborder" title="<?php echo $productsRecord['name'] ?>"><img src="<?php echo $upload['urlPath'] ?>"  alt="" /></a><br />
<?php endif ?>

要了解有关 current() 的更多信息,请查看手册: http://php.net/manual/en/function.current.php

【讨论】:

  • 或者如果你想绝对确定你得到第一个元素,使用reset而不是current
  • @user1463691 如果需要,请将答案标记为正确:)
【解决方案2】:

直接使用数组的第一个元素就行了

$productsRecord['images'][0]

这里不需要循环。

【讨论】:

  • 只是作为一个提示:在 SO 上,您需要用四个空格缩进代码,以便正确突出显示。如果您想在常规文本中包含变量或函数名称(或其他名称),可以使用反引号 (`) 包围代码来使用内联突出显示。
  • 另外,作为一种好的做法,您应该始终在检索数组之前检查是否存在数组中的索引。这样可以避免讨厌的未定义索引警告。
【解决方案3】:

是的,使用中断

    <?php break; endforeach; ?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    • 2019-01-21
    • 1970-01-01
    相关资源
    最近更新 更多