php数组怎么转为树型数组

原创
ithorizon 7个月前 (10-03) 阅读数 110 #PHP

PHP数组转为树型数组的方法

在PHP开发中,我们常常会遇到需要将一维数组转换成树型数组的需求。本文将介绍怎样将普通的PHP数组转换成树型数组。

一、普通数组结构

首先,我们来看一个普通的PHP数组结构,通常包含ID、父ID和名称等信息。

$array = [

['id' => 1, 'parent_id' => 0, 'name' => 'A'],

['id' => 2, 'parent_id' => 0, 'name' => 'B'],

['id' => 3, 'parent_id' => 1, 'name' => 'A-1'],

['id' => 4, 'parent_id' => 1, 'name' => 'A-2'],

['id' => 5, 'parent_id' => 2, 'name' => 'B-1'],

['id' => 6, 'parent_id' => 3, 'name' => 'A-1-1']

];

二、转换方法

接下来,我们使用递归函数来实现数组的转换。递归函数会通过父ID找到对应的子元素,然后将其组合成树型结构。

function buildTree(array $elements, $parentId = 0) {

$branch = array();

foreach ($elements as $element) {

if ($element['parent_id'] == $parentId) {

$children = buildTree($elements, $element['id']);

if ($children) {

$element['children'] = $children;

}

$branch[] = $element;

}

}

return $branch;

}

$tree = buildTree($array);

三、转换后的树型数组

通过上面的递归函数,我们得到了以下树型数组结构:

$tree = [

[

'id' => 1,

'parent_id' => 0,

'name' => 'A',

'children' => [

[

'id' => 3,

'parent_id' => 1,

'name' => 'A-1',

'children' => [

[

'id' => 6,

'parent_id' => 3,

'name' => 'A-1-1'

]

]

],

[

'id' => 4,

'parent_id' => 1,

'name' => 'A-2'

]

]

],

[

'id' => 2,

'parent_id' => 0,

'name' => 'B',

'children' => [

[

'id' => 5,

'parent_id' => 2,

'name' => 'B-1'

]

]

]

];

四、结语

通过本文的介绍,我们了解了怎样将普通的PHP数组转换成树型数组。愿望这个方法能对您的开发工作有所帮助。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: PHP


热门