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>

取出的值是:

  • 1...1---路飞[email protected]
  • 3...3---蜡笔乖欣[email protected]
  • [email protected]
  • 7...65---小心[email protected]
  • 9...74---aa73f80eb8608a88a135---
  • 11...76---_呵呵[email protected]
  • [email protected]

为什么取出的值是这样呢? 按自己的理解 应该是 $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>

值:

  • 0...1---路飞[email protected]
  • 2...3---蜡笔乖欣[email protected]
  • [email protected]
  • 6...65---小心[email protected]
  • 8...74---aa73f80eb8608a88a135---
  • 10...76---_呵呵[email protected]
  • [email protected]

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

时间: 2024-10-06 01:19:05

thinkphp中 volist循环的 mod取值的问题的相关文章

ThinkPHP中volist标签的使用

Volist标签主要用于在模板中循环输出数据集或者多维数组. web页面代码 <!DOCTYPE html> <html> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <

springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序 http://www.360doc.com/content/14/0309/19/834950_359080244.shtml

java中int,float,long,double取值范围,内存泄露

java中int,float,long,double取值范围是多少? 写道 public class TestOutOfBound { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE-(-Integer.MAX_VALUE)); //内存溢出System.out.println(Integer.MAX_VALUE); //2的31次方-1,10个数位,正的20亿左右,用在钱上面不一定够Sy

spring学习之springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序

spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void.下面将对具体的一一进行说明:ModelAndView Java代码 @RequestMapping("/show1") publicModelAndView show1(HttpServletRequest request, HttpServletResponse response) throwsException { ModelA

ICMPv6协议中各种Type的详细取值范围及其含义

https://www.ipv6s.com/basis/20100912134.html 在ICMPv6中的Type字段定义中,0-127为错误消息(Error messages),而128-255为信息消息(Informational messages),其中每种Type定义一种类型及其含义分类,而部分Type中由根据Code值指定该类别下更详细的错误或信息分类. 针对ICMPv6协议属于IPv6协议的一部分,因此该部分对IPv6的ND邻居发现协议进行了很详细的分类,ND邻居发现协议由ICMP

C#中hashtable的赋值、取值、遍历、排序操作

一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大小写:value用于存储对应于key的值.Hashtable中key/value键值对均为object类型,所以Hashtable可以支持任何类型的key/value键值对. 二,哈希表的简单操作 在哈希表中添加一个key/value键值对: Hasht

easyUI中datetimebox和combobox的取值方法

easyUi页面布局中,查询条件放在JS中,如下 <script type="text/javascript"> var columnList = [ [   {    'id' : 'applyStartTime',    'text' : '申请开始时间',    'type' : 'datetimebox'   },   {    'id' : 'applyEndTime',    'text' : '申请结束时间',    'type' : 'datetimebox

Python中sys模块sys.argv取值并判断

#!usr/bin/env python # -*- coding: utf-8 -*- # Author:Sun Xiaolin import sys judgement = sys.argv[1] #[]内写的值表示取第几个 # print(judgement) if judgement == "1": print("一") elif judgement == "2": print("二") else:print(&quo

AngularJS 中ng-model通过$watch动态取值

这个例子的意思是,当xxxx的长度不超过6时,xxxx和yyyy两个input的model是无关的,但当xxxx超过6,则yyyy会跟随其值而变化. <!doctype HTML> <html> <head lang="en"> <meta charset="utf-8"> <script type="text/javascript" src="https://ajax.google