关于ThinkPHP的递归方法
作为一名菜鸟级新手,之前是自己写的框架,由于涉及到了ExtJs前端和PHP后台的结合,就递归函数方面找了好久没有合适的,正好这次索性把网站移植到ThinkPHP,很多代码要重写和优化,在网上搜了一下,也没有找到详细的方法,因此自己写了一个,希望各位新人能学习,大神求指点。
在Org/Util下建一个Tool.class.php文件,内容如下:
在控制器中调用代码如下:
$obj = $model->field()->where($map)->select();
$json = json_encode(Tool::getTree($obj));
echo $json;
因为要给ExtJs的TreeStore使用,因此输出是JSON。
在Org/Util下建一个Tool.class.php文件,内容如下:
namespace Org\Util;
class Tool {
/**
* @param $obj 在数据库中提取的数据源,这里不是obj,而是array的数据
* @param string $data 父级ID
* @return 递归后数组
*/
static public function getTree($obj,$data='ROOT'){
foreach ($obj as $key=>$value){
if($value['parent']==$data){
$obj[$key]['children'] = Tool::getTree($obj,$obj[$key]['id']);
if($obj[$key]['children']==''){
unset($obj[$key]['children']);
$obj[$key]['leaf']=true;
}
$arr[] = $obj[$key];
}
}
return $arr;
}
}
在控制器中调用代码如下:
$obj = $model->field()->where($map)->select();
$json = json_encode(Tool::getTree($obj));
echo $json;
因为要给ExtJs的TreeStore使用,因此输出是JSON。
...全文
相关推荐
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
在介绍thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法时,需要掌握的核心知识点主要集中在以下几个方面:首先,理解thinkPHP框架中递归的概念。
thinkphp5实现无限级分类
在ThinkPHP5框架中,可以通过在模型中定义一个静态方法来实现无限级分类。这个静态方法不需要实例化模型即可调用,具有执行效率高的优点。具体实现时,可以采用引用参数的方式作为递归函数返回结果。
thinkphp实现无限分类(使用递归)
ThinkPHP是一个流行的PHP框架,它提供了便捷的方式来处理这种类型的问题。本篇文章将详细介绍如何在ThinkPHP框架下使用递归方法实现无限分类。首先,我们需要一个数据库来存储分类信息。
ThinkPHP实现递归无级分类——代码少
针对这些问题,ThinkPHP框架也有相应的解决方案,比如可以对查询进行分页处理,或者使用迭代方法代替递归,以提高效率和性能。
PHP两种实现无级递归分类的方法
无级递归分类就是解决这个问题的一种方法,它允许我们无限层级地展示数据。这里将介绍两种不同的PHP实现方式,分别适用于TP(ThinkPHP)框架和CI(CodeIgniter)框架。### 1.


基础编程
