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

WBOY
發布: 2016-06-13 10:38:31
原創
861 人瀏覽過

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' => 0, 'name' => '一级11' ),        array('id' => 11, 'pid' => 0, 'name' => '一级12' ),        array('id' => 2, 'pid' => 1, 'name' => '二级21' ),        array('id' => 10, 'pid' => 11, 'name' => '二级22' ),        array('id' => 3, 'pid' => 1, 'name' => '二级23' ),        array('id' => 12, 'pid' => 11, 'name' => '二级24' ),        array('id' => 9, 'pid' => 1, 'name' => '二级25' ),        array('id' => 14, 'pid' => 1, 'name' => '二级26' ),        array('id' => 4, 'pid' => 9, 'name' => '三级31' ),        array('id' => 6, 'pid' => 9, 'name' => '三级32' ),        array('id' => 7, 'pid' => 4, 'name' => '四级41' ),        array('id' => 8, 'pid' => 4, 'name' => '四级42' ),        array('id' => 5, 'pid' => 4, 'name' => '四级43' ),        array('id' => 13, 'pid' => 4, 'name' => '四级44' ),        array('id' => 15, 'pid' => 8, 'name' => '五级51' ),        array('id' => 16, 'pid' => 8, 'name' => '五级52' ),        array('id' => 17, 'pid' => 8, 'name' => '五级53' ),        array('id' => 18, 'pid' => 16, 'name' => '六级64' ),); $time1 = microtime(true);var_dump(genTree($items1));$time2 = microtime(true);echo "function 时间1:".($time2-$time1);?>
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板