ThinkPHP 模板中不能循环的东西

评论(2)

在 ThinkPHP 中有一些方法返回的数据是单条数组(一维数组)的,是不能遍历的,因为数据结构的原因,如果是一维数组循环中不管你将循环怎样设置,ThinkPHP 会直接将返回结果的数组内容全部循环。

在这里我们要注意,返回单条结果的方法有find、getBy等方法,下面以官方例子为基础给出演示结果。
可以循环的数组结构

array(2) {
[0] => array(8) {
[“id”] => string(2) “33”
[“title”] => string(6) “222111”
[“content”] => string(6) “222111”
[“user_id”] => string(1) “0”
[“create_time”] => string(10) “1342800330”
[“update_time”] => string(1) “0”
[“status”] => string(1) “1”
[“email”] => string(12) “222111@1.com”
}
[1] => array(8) {
[“id”] => string(2) “32”
[“title”] => string(6) “654364”
[“content”] => string(5) “adlkf”
[“user_id”] => string(1) “0”
[“create_time”] => string(10) “1342800285”
[“update_time”] => string(1) “0”
[“status”] => string(1) “1”
[“email”] => string(9) “222@1.com”
}
}

不可以循环的一维数组

array(8) {
[“id”] => string(2) “10”
[“title”] => string(1) “6”
[“content”] => string(1) “6”
[“user_id”] => string(1) “0”
[“create_time”] => string(10) “1342627991”
[“update_time”] => string(1) “0”
[“status”] => string(1) “1”
[“email”] => string(7) “1@1.com”
}

后记

date:2012-Oct-9th
如果想要将变量转换为 ThinkPHP 可循环,
从原理来讲,
只要将一维数组转换成为二维数组即可,
下面简单写一下步骤

<?php
//假设我们有一个一维数组变量 $unloop
//将$unloop转换为二维数组
$enloop = array();
$enloop[0] = $unloop;
//$enloop 便是可以 ThinkPHP 可循环的数组了。
?>




  1. @刘
    新建一个数组变量,
    将原变量并到这个新建的数组变量中,
    不就可以循环使用了?

  2. 那么一维数组该怎么进行在模板中有效的显示呢?