php循环输出表格?

发布于 2022-09-07 03:46:32 字数 1977 浏览 21 评论 0

循环的数组

Array
(
    [0] => Array
        (
            [field_id] => 368
            [model] => customer
            [is_main] => 0
            [field] => age_group
            [name] => 年龄层
            [form_type] => box
        )
    [1] => Array
        (
            [field_id] => 370
            [model] => customer
            [is_main] => 0
            [field] => trade
            [name] => 客户行业
            [form_type] => box
        )
   [2] => Array
        (
            [field_id] => 374
            [model] => customer
            [is_main] => 0
            [field] => biz_scope
            [name] => 经营范围
            [form_type] => text
         )
   [3] => Array
        (
            [field_id] => 375
            [model] => customer
            [is_main] => 0
            [field] => annual_turnover
            [name] => 年营业额
            [form_type] => box
       )
)

输出表格的形式

                         <tr>
                            <td class="tdleft" width="9%">年龄层:</td>
                            <td colspan="3"  width="41%"> 25-50</td>
                            <td class="tdleft" width="9%">客户行业:</td>
                            <td colspan="3"  width="41%">医疗保健</td>
                        </tr>
                          <tr>
                            <td class="tdleft" width="9%">经营范围:</td>
                            <td colspan="3"  width="41%">医疗用品</td>
                            <td class="tdleft" width="9%">年营业额:</td>
                            <td colspan="3"  width="41%">1000万</td>
                        </tr>

请问怎么用thinkphpvolist标签循环这个数组控制一个<tr>里面如上显示?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

黑色毁心梦 2022-09-14 03:46:32

谢邀,可以试试用array_column把单列抽出来,再循环渲染到视图上。


ThinkPHP我不熟啊,随手写了个原生的,看着改吧。

function makeTablesBy($arr) {
    $res = array_column($arr, 'name', 'field');
    $dom = "<tr>\n";
    $i = 0;
    foreach($res as $key => $value) {
        $i++;
        $dom .= "\t<td class=\"tdleft\" width=\"9%\">{$key}<\\td>\n";
        $dom .= "\t<td colspan=\"3\" width=\"41%\">{$value}<\\td>\n";
        if ($i%2===0 && $i!==count($res)) {
            $dom .= "<\\tr>\n<tr>\n";
        }
    }
    $dom .= "<\\tr>";
    return $dom;
}
笑看君怀她人 2022-09-14 03:46:32

看题主的意思应该是每两条数据占一个<tr>(不知道理解的对不对),按照这个思路帮题主写了个答案,题主不妨试试看,如下:

{volist name="list" id="vo" }
  {if condition="$i%2 == 1"}<tr>{/if}
    <td class="tdleft" width="9%">{$vo.name}:</td>
    <td colspan="3" width="41%"> xxxx</td>
  {if condition="$i%2 == 0"}</tr>{/if}
{/volist}

ps:其中“xxxx”的部分是因为没有在数组中找到相应能够对应上的字段值。

打小就很酷 2022-09-14 03:46:32

这样实现的

            <php>$j=0;</php>
            <volist name="field_data_list" id="vo">
                <php>$j++;</php>
                <td class="tdleft" width="9%">{$vo.name}:</td>
                <td colspan="3" width="41%">{$customer[$vo['field']]}</td>
                <if condition="$j%2 == 0 && $j lt count($field_data_list)">
                    </tr>
                </if>
            </volist>
空气里的味道 2022-09-14 03:46:32

你这个东西只有4个,直接写死得了

时光倒影 2022-09-14 03:46:32

把数组合成一维数组 直接输出就可以了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文