为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过生成列布局来输出 foreach 内的元素?

如何通过生成列布局来输出 foreach 内的元素?

PHP
烙印99 2022-08-05 10:47:42
我有一个问题需要解决。我在PHP中有这个HTML布局:<div class="container">    <div class="wrapper">        <span class="entry"></span>        <span class="entry"></span>    </div>    <div class="wrapper">        <span class="entry"></span>        <span class="entry"></span>    </div>    <div class="wrapper">        <span class="entry"></span>        <span class="entry"></span>    </div>    <div class="wrapper">        <span class="entry"></span>        <span class="entry"></span>    </div></div>我在这里有一个列布局。这意味着我总是想将2个元素打包到一个包装器类中。我从数组中获取所有元素,我想用循环输出。我的想法是每2次传递一次才输出包装器,但这会产生以下输出:<div class="wrapper">    <div class="wrapper">        <span class="entry"></span>    </div>    <span class="entry"></span>    <div class="wrapper">        <span class="entry"></span>    </div>    <span class="entry"></span>    <div class="wrapper">        <span class="entry"></span>    </div>    <span class="entry"></span>    <div class="wrapper">        <span class="entry"></span>    </div>    <span class="entry"></span></div>这是我的代码:<div class="container">    <?php    $loop_count = 0;    foreach ( $array as $item ) {        if ( $loop_count % 2 === 0 ) { ?>            <div class="wrapper">        <?php } ?>        <span class="entry"><?= $item ?></span>        <?php if ( $loop_count % 2 === 0 ) { ?>            </div>        <?php }        $loop_count++;    } ?></div>我在图像中的预期输出:
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

你的代码会有点复杂:


<?php

$array = [1,2,3];?>

<div class="container">

    <?php

    $loop_count = 0;

    foreach ( $array as $item ) {

        // here you open `div.wrapper`

        if ( $loop_count % 2 === 0 ) { ?>

            <div class="wrapper">

        <?php } ?>

        <span class="entry"><?= $item ?></span>

        <?php 

        // here you close `div.wrapper`

        if ( $loop_count % 2 === 1 ) { ?>

            </div>

        <?php }

        $loop_count++;

    }

    // here you close `div.wrapper` if you have odd count of elements

    if ( $loop_count % 2 === 1 ) { ?>

        </div>

    <?php }?>

</div>

不太复杂的解决方案是将数组拆分为大小为 2 的块:


<?php


$array = [1,2,3,4];

$chunks = array_chunk($array, 2);

?>

<div class="container">

    <?php

    foreach ( $chunks as $chunk ) {?>

        <div class="wrapper">

            <span class="entry"><?= $chunk[0] ?></span>

            <!-- Here you can check if second element exists -->

            <span class="entry"><?= $chunk[1] ?></span>

        </div>

    <?php }?>

</div>


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信