PHPackages                             clouds-flight/array-tree - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. clouds-flight/array-tree

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

clouds-flight/array-tree
========================

library for change array with tree structure to tree structure

v1.0(5y ago)08MITPHP

Since Jun 9Pushed 4y ago1 watchersCompare

[ Source](https://github.com/clouds-flight/array-tree)[ Packagist](https://packagist.org/packages/clouds-flight/array-tree)[ RSS](/packages/clouds-flight-array-tree/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

array-tree
==========

[](#array-tree)

带有树结构的数组（含parent\_id）非递归生成包含层级的树结构数组

只是遍历了一遍所有数据，和指定父元素及其下所有子元素，未使用递归，理论上可以支持无限层级

原始结构

```
json编码后结构如下：
   [{
       "id": "1",
       "parent_id": "0",
       "name": "插件中心"
   }, {
       "id": "2",
       "parent_id": "1",
       "name": "钩子管理"
   }, {
       "id": "3",
       "parent_id": "2",
       "name": "钩子插件管理"
   }, {
       "id": "4",
       "parent_id": "2",
       "name": "钩子插件排序"
   }, {
       "id": "5",
       "parent_id": "2",
       "name": "同步钩子"
   }, {
       "id": "6",
       "parent_id": "0",
       "name": "设置"
   }, {
       "id": "7",
       "parent_id": "6",
       "name": "友情链接"
   }, {
       "id": "8",
       "parent_id": "7",
       "name": "添加友情链接"
   }, {
       "id": "9",
       "parent_id": "7",
       "name": "添加友情链接提交保存"
   }]

```

生成包含层级结构的数组

```
ArrayTree::getTree($array,id);  //$array 包含树结构关系的数组（需包含 id  parent_id name），$id 父id ，会返回该父id下的所有子级元素（层级结构）
结果如下：
[{
    "id": "1",
    "parent_id": "0",
    "name": "插件中心",
    "children": [{
	    "id": "2",
	    "parent_id": "1",
	    "name": "钩子管理",
	    "children": [{
		    "id": "3",
		    "parent_id": "2",
		    "name": "钩子插件管理",
		    "children": []
	    }, {
		    "id": "4",
		    "parent_id": "2",
		    "name": "钩子插件排序",
		    "children": []
	    }, {
		    "id": "5",
		    "parent_id": "2",
		    "name": "同步钩子",
		    "children": []
	    }]
    }]
    }, {
    "id": "6",
    "parent_id": "0",
    "name": "设置",
    "children": [{
	    "id": "7",
	    "parent_id": "6",
	    "name": "友情链接",
	    "children": [{
	    	"id": "8",
	    	"parent_id": "7",
	    	"name": "添加友情链接",
    		"children": []
    	       }, {
	    	"id": "9",
	    	"parent_id": "7",
	    	"name": "添加友情链接提交保存",
	    	"children": []
	    }]
    }]
}]

```

生成包含层级结构的数组，并添加名称路径

```
ArrayTree::getTreePath($res,$id,$separator);  //$array 包含树结构关系的数组（需包含 id  parent_id name），$id 父id ，会返回该父id下的所有子级元素（层级结构），$separator 路径分隔符
结果如下（分隔符是/，因转为json字符串添加了转义符，解码后是没有\的）：
[{
    "id": "1",
    "parent_id": "0",
    "name": "插件中心",
    "path": "插件中心",
    "children": [{
	    "id": "2",
	    "parent_id": "1",
	    "name": "钩子管理",
	    "path": "插件中心\/钩子管理",
	    "children": [{
		    "id": "3",
		    "parent_id": "2",
	            "name": "钩子插件管理",
	            "path": "插件中心\/钩子管理\/钩子插件管理",
	    	    "children": []
    	       }, {
		"id": "4",
	    	"parent_id": "2",
	    	"name": "钩子插件排序",
	    	"path": "插件中心\/钩子管理\/钩子插件排序",
	    	"children": []
    	      }, {
	    	"id": "5",
	    	"parent_id": "2",
	    	"name": "同步钩子",
    		"path": "插件中心\/钩子管理\/同步钩子",
	    	"children": []
    	}]
    }]
        }, {
         "id": "6",
         "parent_id": "0",
        "name": "设置",
        "path": "设置",
        "children": [{
	    "id": "7",
    	    "parent_id": "6",
    	    "name": "友情链接",
    	    "path": "设置\/友情链接",
    	    "children": [{
	    	    "id": "8",
	    	    "parent_id": "7",
	        	"name": "添加友情链接",
	        	"path": "设置\/友情链接\/添加友情链接",
	        	"children": []
    	           }, {
	        	"id": "9",
	        	"parent_id": "7",
	        	"name": "添加友情链接提交保存",
	        	 path": "设置\/友情链接\/添加友情链接提交保存",
	        	"children": []
    	    }]
        }]
    }]

```

获取父元素所有子元素id的集合

```
ArrayTree::getChildrenIdArray($array,$id);  //$array 包含树结构关系的数组（需包含 id  parent_id name），$id 父id ，会返回该父id下的所有子级元素id的集合
结果如下：
["1","6","2","7","3","4","5","8","9"]

```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2169d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/66465402?v=4)[clouds-flight](/maintainers/clouds-flight)[@clouds-flight](https://github.com/clouds-flight)

---

Top Contributors

[![clouds-flight](https://avatars.githubusercontent.com/u/66465402?v=4)](https://github.com/clouds-flight "clouds-flight (13 commits)")

### Embed Badge

![Health badge](/badges/clouds-flight-array-tree/health.svg)

```
[![Health](https://phpackages.com/badges/clouds-flight-array-tree/health.svg)](https://phpackages.com/packages/clouds-flight-array-tree)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
