PHP 把返回的数据集转换成Tree树

/**
* 把返回的数据集转换成Tree
* @access public
* @param array $list 要转换的数据集
* @param string $pid parent标记字段
* @param string $level level标记字段
* @return array
*/
public static function list_to_tree($list, $pk=‘cat_id‘,$pid = ‘parent_id‘,$child = ‘_child‘,$root=0) {
// 创建Tree
$tree = array();
if(is_array($list)) {
// 创建基于主键的数组引用
$refer = array();
foreach ($list as $key => $data) {
$refer[$data[$pk]] =& $list[$key];
}
foreach ($list as $key => $data) {
// 判断是否存在parent
$parentId = $data[$pid];
if ($root == $parentId) {
$tree[] =& $list[$key];
}else{
if (isset($refer[$parentId])) {
$parent =& $refer[$parentId];
$parent[$child][] =& $list[$key];
}
}
}
}
return $tree;
}

时间: 2024-11-08 18:15:10

PHP 把返回的数据集转换成Tree树的相关文章

接口返回值结果转换成JSON

接口返回值结果转换成JSON,具体的方法如下: public static String GetJsonValue(String result,int index,String key){ int indexloc,indexkey; String newstr; indexloc=result.indexOf("["); indexkey=result.indexOf(key); //判断Data域的内容 if (( indexloc>indexkey || indexloc=

C#返回时间格式转换成 js 字符串

在.net 中,调用 post 或者 get和后台通信时,如果有时间返回信息,后台返回的时间信息一般是这样格式:Thu Jul 9 23:14:53 UTC+0800 2015,那么要在前台显示就会有点点小困难.最近使用到,小小研究了下,参照网络中的写法,解决方法如下:1.先将C#的格式转换成js 的datetime形式. /* *将C#返回的日期格式进行转换 将 类似 Thu Jul 9 23:14:53 UTC+0800 2015 转换成 2015-05-06 *Parameters: *o

easyUi中的一段漂亮代码之将list转换成tree.

1 function convert(rows){ 2 function exists(rows, parentId){ 3 for(var i=0; i<rows.length; i++){ 4 if (rows[i].id == parentId) return true; 5 } 6 return false; 7 } 8 9 var nodes = []; 10 // get the top level nodes 11 for(var i=0; i<rows.length; i++)

SqlSever基础 cast 将getdate返回的时间转换成字符串

镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 code 1 select '今天的日期是'+cast(getdate() as varchar(20)) 2 show ------------------------------------------博文的精髓,在技术部分,更在镇场一诗.SqlSever是优秀的语言,值得努力学习.熟悉数

IOS NSData 转换成 NSDictionary

当我们通过URLRequest获取到返回的数据时,如果返回的结果是JSON格式的数据,我们需要将返回的NSData转换成NSDictionary. ? ??NSData *returnData = [ NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&err];//获取网络链接返回的数据 ? ? NSDictionary *content = [NSJSONSerializa

js把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式

最近在做项目的时候,需要把后台返回的时间转换成几秒前.几分钟前.几小时前.几天前等的格式:后台返回的时间格式为:2015-07-30 09:36:10,需要根据当前的时间与返回的时间进行对比,最后显示成几秒前.几分钟前.几小时前.几天前的形式. 1.由于返回的时间是字符串格式,所以要先转换成时间戳 //字符串转换为时间戳 function getDateTimeStamp (dateStr) { return Date.parse(dateStr.replace(/-/gi,"/"))

【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】

[109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 题目大意 给定一个升序的单链表.将它转换成一颗高度平衡的二叉树 解题思路 解法

LeetCode OJ:Convert Sorted Array to Binary Search Tree(将排序好的数组转换成二叉搜索树)

Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 讲一个排序好的数组转换成二叉搜索树,这题没想出来,基本上是参考别人的,边界条件应该注意一下: 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * T

TXT文件转换成DataSet数据集

1 /// <summary> 2 /// TXT文件转换成DataSet数据集 3 /// </summary> 4 /// <param name="FilePath"></param> 5 /// <param name="TableName"></param> 6 /// <returns></returns> 7 private DataSet TextFile