以列方式而不是行方式显示来自 foreach 循环的数据

Posted

技术标签:

【中文标题】以列方式而不是行方式显示来自 foreach 循环的数据【英文标题】:showing data from foreach loop in column way instead of rows way 【发布时间】:2022-01-18 11:31:07 【问题描述】:

我尝试使用 foreach 循环从数据库中获取数据并以列方式显示它们,目前我收到它们,因为它出现在这个

但我需要它看起来像这样

| Founders Circle  |  Global Pool |    Universal Pool |  Infinity Pool |  Regional Pool |
|78156 -and input- |1021673-input |  5000000 - input  | 56823 - input  |  0 and input   |
<?php
    foreach( $calculations as $calculation ) 
?>
<table>
    <tr>
        <th>
        <?php echo $calculation['Calculation']['poolname']; ?>
        </th>
    </tr>
    <tr>
        <td>
        <div class="input text" id="pool_calc">
            <?php echo $calculation['Calculation']['total_units']; ?>
            <input name="own_pools" type="text" value="" id="own_pools"  maxlength="3" size="4" >
        </div>
        </td>
    </tr>
    <?php 
    
    ?>
</table>

出了什么问题或者我该如何解决?

【问题讨论】:

【参考方案1】:

有更多的方法,你最容易理解的一种是使用两个相同的foreach循环。

<table>
    <tr>
<?php
        foreach( $calculations as $calculation ) 
        // All TH in the first row
?>
            <th>
                <?php echo $calculation['Calculation']['poolname']; ?>
            </th>
<?php 
        
?>
    </tr>
    <tr>
<?php
        foreach( $calculations as $calculation ) 
            // All TD in the second row
?>
            <td>
                <div class="input text" id="pool_calc">
                    <?php echo $calculation['Calculation']['total_units']; ?>
                    <input name="own_pools" type="text" value="" id="own_pools"  maxlength="3" size="4" >
                </div>
            </td>
<?php 
        
?>
    </tr>
</table>

在问题的代码中,您为每条记录创建 2 行的新表(您总共有 5 个表)。

基本思想是将&lt;table&gt;移到循环之外。

更新了一些代码,没有重复 foreach 循环(将 TD 保存在变量中并稍后回显)。

<table>
    <tr>
<?php
        $tds = '';
        foreach( $calculations as $calculation ) 
        // All TH in the first row
?>
            <th>
                <?php echo $calculation['Calculation']['poolname']; ?>
            </th>

<?php            
            // create TDs code
            $tds .= '
                <td>
                    <div class="input text" id="pool_calc">
                        ' . $calculation['Calculation']['total_units'] . '
                        <input name="own_pools" type="text" value="" id="own_pools"  maxlength="3" size="4" >
                    </div>
                </td>
            ';
        
?>
    </tr>
    <tr>
<?php
        echo $tds;
        // echo TDs in the second row
?>
    </tr>
</table>

【讨论】:

@salgergawi 不客气。 我希望我的投票正确吗?

以上是关于以列方式而不是行方式显示来自 foreach 循环的数据的主要内容,如果未能解决你的问题,请参考以下文章

Java以列/行显示输出

为啥我应该在循环中使用 foreach 而不是 for (int i=0; i<length; i++) ?

使用 ForEach (SwiftUI) 的偶数行和奇数行

为啥 foreach 循环显示来自其他用户的数据?

Foreach 只返回第一个值

for循环二维数组的取值方式?