You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codeigniter3中使用foreach如何让数组首个元素与其他元素展示不同

实现方案

你可以通过以下两种方式完成需求,推荐使用第一种方案逻辑更简洁:

方案1:单独取首元素渲染头条,截取剩余元素渲染列表

利用PHP原生array_slice()函数直接截取第二个及之后的数组元素遍历,不需要循环内额外判断,执行效率更高:

<div class="editor-choice">
<div class="headsection">EDITOR’S CHOICE</div>
<!-- 先判断数组非空避免报错 -->
<?php if (!empty($editorchoice)): ?>
<!-- Headline Editor Choice 头条区域 -->
<article class="headline-editor-choice">
    <a href="<?php echo $editorchoice[0]['link']; ?>">
        <div class="img-headline-editor-choice">
            <img src="<?php echo image_uri().'/okz/900/'.str_replace("thumb","master",@$editorchoice[0]['image_content']); ?>"
                alt="img-news">
        </div>
    </a>
    <div class="detail-headline-editor-choice">
        <!-- 分类、日期字段请根据你实际数组的字段名替换 -->
        <a href="<?php echo site_url($editorchoice[0]['category_slug']); ?>" class="category pb-0"><?php echo $editorchoice[0]['category_name']; ?></a>
        <span class="date"><?php echo $editorchoice[0]['post_date']; ?></span>
        <div class="title-article title-editor-choice-headline">
            <a href="<?php echo $editorchoice[0]['link']; ?>"
                class="title" style="-webkit-box-orient: vertical;"><?php echo $editorchoice[0]['title']; ?></a>
        </div>
    </div>
</article>
<!-- List Editor Choice 列表区域 -->
<?php 
// 截取从下标1开始的所有元素,即第二个及之后的内容
$list_data = array_slice($editorchoice, 1);
foreach ($list_data as $kuy => $val) { ?>
<article class="list-editor-choice">
    <div class="img-editor-choice">
        <a href="<?php echo $val['link']; ?>">
            <img src="<?php echo image_uri().'/okz/900/'.str_replace("thumb","master",@$val['image_content']); ?>"
                alt="img-news">
        </a>
    </div>
    <div class="detail-editor-choice">
        <div class="title-article title-editor-choice">
            <a href="<?php echo $val['link']; ?>"
                class="title" style="-webkit-box-orient: vertical;"><?php echo $val['title']; ?></a>
        </div>
        <div class="warp-date-article">
            <div class="ico-calendar"><img src="<?php echo base_url(); ?>assets/mobile/images/icon/calender.svg">
            </div>
            <div class="date-article"><?php echo $val['post_date']; ?></div>
        </div>
    </div>
</article>
<?php } ?>
<?php endif; ?>

方案2:循环内判断下标跳过首元素

如果你不想额外生成新的数组变量,也可以在原有循环内判断下标跳过第一个元素即可:

<?php foreach ($editorchoice as $kuy => $val) { 
    if ($kuy === 0) continue; // 直接跳过第一个元素
?>
<!-- 原有列表渲染逻辑保持不变 -->
<?php } ?>

内容的提问来源于stack exchange,提问作者Fathul Muiin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 15:06:06