FLEA/FLEA/Helper/Array.php
源代码如下:
function array_to_tree($arr, $fid, $fparent = 'parent_id',
$fchildrens = 'childrens', $returnReferences = false)
{
$pkvRefs = array();
foreach ($arr as $offset => $row) {
$pkvRefs[$row[$fid]] =& $arr[$offset];
}
$tree = array();
foreach ($arr as $offset => $row) {
$parentId = $row[$fparent];
if ($parentId) {
if (!isset($pkvRefs[$parentId])) {continue; }
$parent =& $pkvRefs[$parentId];//1
$parent[$fchildrens][] =& $arr[$offset]; //2
} else {
$tree[] =& $arr[$offset];
}
}
if ($returnReferences) {
return array('tree' => $tree, 'refs' => $pkvRefs);
} else {
return $tree;
}
}
加注释的这两行有错误...
里面 $parent 操作之后未进行其它的操作,估计是笔误,将其改为 $tree即可
更改后的代码如下
/**
* 将一个平面的二维数组按照指定的字段转换为树状结构
*
* 当 $returnReferences 参数为 true 时,返回结果的 tree 字段为树,refs 字段则为节点引用。
* 利用返回的节点引用,可以很方便的获取包含以任意节点为根的子树。
*
* @param array $arr 原始数据
* @param string $fid 节点ID字段名
* @param string $fparent 节点父ID字段名
* @param string $fchildrens 保存子节点的字段名
* @param boolean $returnReferences 是否在返回结果中包含节点引用
*
* return array
*/
function array_to_tree($arr, $fid, $fparent = 'parent_id',
$fchildrens = 'childrens', $returnReferences = false)
{
$pkvRefs = array();
foreach ($arr as $offset => $row) {
$pkvRefs[$row[$fid]] =& $arr[$offset];
}
$tree = array();
foreach ($arr as $offset => $row) {
$parentId = $row[$fparent];
if ($parentId) {
if (!isset($pkvRefs[$parentId])) {continue; }
$tree =& $pkvRefs[$parentId];
$tree[$fchildrens][] =& $arr[$offset];
} else {
$tree[] =& $arr[$offset];
}
}
if ($returnReferences) {
return array('tree' => $tree, 'refs' => $pkvRefs);
} else {
return $tree;
}
}
修改之后,结果正确,否则基本均为空数组
分享到:
相关推荐
**FleaPHP的单入口文件详解** 在PHP开发框架中,单入口模式是一种常见的设计模式,它主要用于管理和控制应用程序的流程。FleaPHP作为一个轻量级的PHP框架,也采用了这种模式,以此来保证程序的高效性和易于维护。...
Fleaphp的轻量级特性使其在小型项目中表现出色,同时,其灵活的配置和丰富的功能也适用于中大型项目。 二、路由系统 Fleaphp的路由系统允许开发者定义URL到控制器方法的映射,这样可以根据URL请求动态地执行相应的...
7. **缓存机制**:为了提高应用性能,Fleaphp内置了缓存系统,支持文件、内存(如APC、Memcached、Redis)等多种缓存方式。通过缓存,可以有效减少对数据库的访问,提升网站响应速度。 8. **错误处理**:Fleaphp有...
Fleaphp是一款针对中文开发环境设计的轻量级PHP框架,它在国内PHP开发者社区中享有较高的声誉。作为一款优秀的框架,Fleaphp旨在提供高效、简洁且易于上手的开发工具,帮助开发者快速构建Web应用。下面将详细介绍...
8. **自动化工具**:为了提升开发效率,Fleaphp可能带有脚手架或命令行工具,用于快速生成控制器、模型、视图等基础文件结构。 9. **第三方库集成**:像许多PHP框架一样,Fleaphp可能集成了如Smarty、Twig等模板...
在FleaPHP开源应用程序开发框架中,有几个关键的系统方法,它们是开发高效Web应用的基础。下面我们将详细探讨这些方法: 1. **FLEA::initWebControls()**: 这个函数用于初始化WebControls,它返回一个`FLEA_...
在Fleaphp中,如何创建和组织视图文件,以及如何将数据从控制器传递到视图进行渲染,是提升用户体验的重要一环。 6. **模板引擎**:Fleaphp可能内置了模板引擎,帮助开发者更好地分离业务逻辑和展示逻辑,减少视图...
在提供的文件`APM-Express.exe`中,可能是一个用于快速安装或管理FleaPHP项目的工具,比如自动部署、环境检查、依赖安装等。使用此类工具可以加速项目初始化,让开发者更专注于实际的编码工作。 总的来说,FleaPHP...
在apidoc.chm文件中,您可以找到FleaPHP的API文档,包括各个类、方法和函数的详细说明。这份文档是学习和使用FleaPHP的关键资源,它将指导您如何有效地利用框架的功能进行开发。 总的来说,FleaPHP是一个全面的PHP...
- **助手对象**:FleaPHP内置了一系列实用的助手对象,如图像验证码生成、文件上传处理等,这些对象独立于框架本身,便于在非FleaPHP环境中使用。 #### 四、FleaPHP的应用场景与展望 - **应用场景**:适合快速...
### FleaPHP框架学习教程知识点概述 #### 一、FleaPHP框架简介 - **特点**:FleaPHP是一款轻量级的PHP框架,旨在帮助开发者快速、轻松地创建应用程序。该框架简单易懂,拥有丰富的示例和中文文档,支持PHP4和PHP5...
Fleaphp框架中,模型类继承自TableDataGateway,这使得模型层可以很方便地执行基本的数据库操作。 5. 视图(View): 视图是用户看到并与之交互的界面,Fleaphp框架使用Smarty模板引擎来实现视图层,这样可以将业务...
在本文中,我们将深入探讨Fleaphp框架的核心特性,常见问题及解决方案,以及如何有效地使用这个框架进行项目开发。 1. **框架结构与配置** Fleaphp框架采用MVC(Model-View-Controller)设计模式,使得业务逻辑、...
fleaphp.chm手册
在谈论fleaphp框架中rolesNameField的bug及其解决方案时,首先需要了解fleaphp框架是什么,以及rolesNameField在其中扮演的角色。fleaphp是一个基于PHP语言开发的轻量级MVC框架,它提供了开发小型到中型Web应用的...
FleaPHP支持模板引擎,允许您使用PHP语法编写视图文件,同时提供了一些便利的辅助函数来简化HTML生成。您可以通过在控制器中传递数据到视图,并在视图中渲染这些数据,实现动态页面。 除了基本的MVC组件,FleaPHP还...
FleaPHP chm文档,简单实例,框架流程介绍
学习FleaPHP必备,强烈推荐!
`FLEAPHP手册1.chm`为开发者提供了框架的使用指南,包括路由设定、模型构建、视图渲染、控制器操作等,有助于快速理解和应用这个框架。 【Smarty】:Smarty是一个PHP模板引擎,将业务逻辑和显示模板分离,提高代码...