php 非递归树形数组构造函数
程序员文章站
2022-05-07 22:33:26
...
分享二个不用递归实现的树形数组的构造函数,有需要的朋友,作个参考。
非递归树形数组构造函数,代码: $item ) { if ($item [$pid]) { if (! isset ( $t [$item [$pid]] ['parent'] [$item [$pid]] )) $t [$item [$id]] ['parent'] [$item [$pid]] = & $t [$item [$pid]]; } } return $t; } /** * * 创建子节点树形数组 * 参数 * * $ar 数组,邻接列表方式组织的数据 * $id 数组中作为主键的下标或关联键名 * $pid * 数组中作为父键的下标或关联键名 * 返回 多维数组 * */ function find_child($ar, $id = 'id', $pid = 'pid') { foreach ( $ar as $v ) $t [$v [$id]] = $v; foreach ( $t as $k => $item ) { if ($item [$pid]) { $t [$item [$pid]] ['child'] [$item [$id]] = & $t [$k]; } } return $t; } $data = array ( array ( 'ID' => 1, 'PARENT' => 0, 'NAME' => '祖父' ), array ( 'ID' => 2, 'PARENT' => 1, 'NAME' => '父亲' ), array ( 'ID' => 3, 'PARENT' => 1, 'NAME' => '叔伯' ), array ( 'ID' => 4, 'PARENT' => 2, 'NAME' => '自己' ), array ( 'ID' => 5, 'PARENT' => 4, 'NAME' => '儿子' ) ); $p = find_parent ( $data, 'ID', 'PARENT' ); $c = find_child ( $data, 'ID', 'PARENT' ); print_r($c); exit; ?> |
推荐阅读
-
PHP 无限分类三种方式 非函数的递归调用!_PHP教程
-
关于xuzuning版主发的非递归树形数组构造函数有关问题
-
关于xuzuning版主发的非递归树形数组构造函数有关问题
-
PHP递归调用数组值并用其执行指定函数
-
PHP递归调用数组值并用其执行指定函数的方法,递归数组
-
利用递归把多维数组转为一维数组的函数_php基础
-
PHP递归调用数组值并用其执行指定函数的方法
-
PHP递归调用数组值并用其执行指定函数的方法_php技巧
-
php通过array_merge()函数合并关联和非关联数组的方法,array_merge数组
-
php通过array_merge()函数合并关联和非关联数组的方法_PHP教程