php把数据集转换成树状结构,无限极分类生成树状
方法1
直接上代码,在onethink里面使用的转换树状结构
/** * 把返回的数据集转换成Tree * @param array $list 要转换的数据集 * @param string $pid parent标记字段 * @param string $level level标记字段 * @return array * @author 麦当苗儿 <zuojiazi@vip.qq.com> */ function list_to_tree($list, $pk="id", $pid = "pid", $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; }
$refer[$data[$pk]] = & $list[$key];
这里的$refer[$data[$pk]]就是引用了 $list[$key] 地址了
$tree这个变量也是引用的$list里面的内容
返回$tree就是返回$list里面的内容
方法2
function generateTree2($rows, $id="id", $pid="pid"){ $items = array(); foreach ($rows as $row) $items[$row[$id]] = $row; foreach ($items as $item) $items[$item[$pid]]["son"][$item[$id]] = &$items[$item[$id]]; return isset($items[0]["son"]) ? $items[0]["son"] : array(); }1,和上面的一样,创建基于主键的数组
2,通过引用到父级分类下面
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: php常用的内置函数
- 下一篇:没有了