thinkphp中 volist循环的 mod取值的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp中 volist循环的 mod取值的问题相关的知识,希望对你有一定的参考价值。

<ul>
    <volist name="data" id="arr" key="k" mod="2">
        <eq name="mod" value="0">
            <li>{$k}...{$arr.id}---{$arr.user}---{$arr.email}</li>
        </eq>
    </volist>
</ul>

取出的值是:

为什么取出的值是这样呢? 按自己的理解 应该是 $mod = $k%2; 然后 为0的输出来,怎么$k是基数呢,不应该是偶数吗?

随后查看缓存中的源码:

<ul>
    <?php if (is_array($data)): $k = 0;
        $__LIST__ = $data;
        if (count($__LIST__) == 0) : echo "";
        else: foreach ($__LIST__ as $key => $arr): $mod = ($k % 2);
            ++$k;
            if (($mod) == "0"): ?>
                <li><?php echo($k); ?>...<?php echo($arr["id"]); ?>---<?php echo($arr["user"]); ?>
                ---<?php echo($arr["email"]); ?></li><?php endif; endforeach; endif;
    else: echo "";endif; ?>
</ul>

知道了,$k是从0开始的,而外面的$k却是1开始的

我们这样,自己定义一个$i:

<ul>
    <!--取mod问题-->
    <php>$i=0;</php>
    <volist name="data" id="arr" key="k" mod="5">
        <eq name="mod" value="0">
            <li><php>echo $i;</php>...{$arr.id}---{$arr.user}---{$arr.email}</li>
        </eq>
        <php>$i++;</php>
    </volist>
</ul>

值:

答案显然就出来了,是thinkphp中 把mod 的$k值改变了。。。。。

以上是关于thinkphp中 volist循环的 mod取值的问题的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp-volist3

有关thinkphp的volist换行问题

ThinkPHP模板循环输出Volist标签用法实例详解

thinkphp怎么让循环volist除去最后一次

thinkphp-循环输出标签volist

thinkPHP <volist>标签 循环输出表格 怎么动态设定循环次数呢?