首页 后端开发 php教程 php 无限分门别类 树形数据 格式化

php 无限分门别类 树形数据 格式化

Jun 13, 2016 pm 01:18 PM
array gt id name pid

php 无限分类 树形数据 格式化

?

<?php function genTree($items,$id='id',$pid='pid',$son = 'children'){
	$tree = array(); //格式化的树
	$tmpMap = array();  //临时扁平数据
	
	foreach ($items as $item) {
		$tmpMap[$item[$id]] = $item;
	}
	
	foreach ($items as $item) {
		if (isset($tmpMap[$item[$pid]])) {
			$tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]];
		} else {
			$tree[] = &$tmpMap[$item[$id]];
		}
	}
	unset($tmpMap);
	return $tree;
}

$items1 = array(
        array('id' => 1, 'pid' =&gt; 0, 'name' =&gt; '一级11' ),
        array('id' =&gt; 11, 'pid' =&gt; 0, 'name' =&gt; '一级12' ),
        array('id' =&gt; 2, 'pid' =&gt; 1, 'name' =&gt; '二级21' ),
        array('id' =&gt; 10, 'pid' =&gt; 11, 'name' =&gt; '二级22' ),
        array('id' =&gt; 3, 'pid' =&gt; 1, 'name' =&gt; '二级23' ),
        array('id' =&gt; 12, 'pid' =&gt; 11, 'name' =&gt; '二级24' ),
        array('id' =&gt; 9, 'pid' =&gt; 1, 'name' =&gt; '二级25' ),
        array('id' =&gt; 14, 'pid' =&gt; 1, 'name' =&gt; '二级26' ),
        array('id' =&gt; 4, 'pid' =&gt; 9, 'name' =&gt; '三级31' ),
        array('id' =&gt; 6, 'pid' =&gt; 9, 'name' =&gt; '三级32' ),
        array('id' =&gt; 7, 'pid' =&gt; 4, 'name' =&gt; '四级41' ),
        array('id' =&gt; 8, 'pid' =&gt; 4, 'name' =&gt; '四级42' ),
        array('id' =&gt; 5, 'pid' =&gt; 4, 'name' =&gt; '四级43' ),
        array('id' =&gt; 13, 'pid' =&gt; 4, 'name' =&gt; '四级44' ),
        array('id' =&gt; 15, 'pid' =&gt; 8, 'name' =&gt; '五级51' ),
        array('id' =&gt; 16, 'pid' =&gt; 8, 'name' =&gt; '五级52' ),
        array('id' =&gt; 17, 'pid' =&gt; 8, 'name' =&gt; '五级53' ),
        array('id' =&gt; 18, 'pid' =&gt; 16, 'name' =&gt; '六级64' ),
); 

$time1 = microtime(true);
var_dump(genTree($items1));
$time2 = microtime(true);
echo "function 时间1:".($time2-$time1);
?&gt;
登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

此 Apple ID 尚未在 iTunes Store 中使用:修复 此 Apple ID 尚未在 iTunes Store 中使用:修复 Jun 10, 2024 pm 05:42 PM

此 Apple ID 尚未在 iTunes Store 中使用:修复

修复事件ID 55,50,98,140磁盘错误在事件查看器 修复事件ID 55,50,98,140磁盘错误在事件查看器 Mar 19, 2024 am 09:43 AM

修复事件ID 55,50,98,140磁盘错误在事件查看器

华为GT3 Pro和GT4的差异是什么? 华为GT3 Pro和GT4的差异是什么? Dec 29, 2023 pm 02:27 PM

华为GT3 Pro和GT4的差异是什么?

阿里巴巴id在哪里看 阿里巴巴id在哪里看 Mar 08, 2024 pm 09:49 PM

阿里巴巴id在哪里看

修复:截图工具在 Windows 11 中不起作用 修复:截图工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

修复:截图工具在 Windows 11 中不起作用

事件 ID 4660:已删除对象 [修复] 事件 ID 4660:已删除对象 [修复] Jul 03, 2023 am 08:13 AM

事件 ID 4660:已删除对象 [修复]

腾讯视频id在哪里查看 腾讯视频id在哪里查看 Feb 24, 2024 pm 06:25 PM

腾讯视频id在哪里查看

如何修复无法连接到iPhone上的App Store错误 如何修复无法连接到iPhone上的App Store错误 Jul 29, 2023 am 08:22 AM

如何修复无法连接到iPhone上的App Store错误

See all articles