12 11 2022
摘要:
// 将下面数据转成树状结构,例如

//[

// 'id' => 3,

// 'name' => 'bbb',

// 'pid' => 0,

// 'children' => [

// 'id' => 2,

// 'name' => 'aaa',

// 'pid' => 3,

// 'children' => [

// 'id' => 4,

// 'name' => 'ddd',

// 'pid' => 2,

// 'children' => [

// ]

// ]

// ]

//]

$arr = [

[

'id' => 2,

'name' => 'aaa',

'pid' => 3,

],

[

'id' => 3,

'name' => 'bbb',

'pid' => 0,

],

[

'id' => 1,

'name' => 'ccc',

'pid' => 0,

],

[

'id' => 4,

'name' => 'ddd',

'pid' => 2,

],

[

'id' => 5,

'name' => 'eee',

'pid' => 1,

],

[

'id' => 6,

'name' => 'fff',

'pid' => 2,

],

[

'id' => 7,

'name' => 'ggg',

'pid' => 4,

],

];

//--------------------------------------------------------------

// 结果

$arr1 = [];

$arr2 = [];

foreach ($arr as &$item) {

$arr1[$item['id']] = &$item;

}

unset($item);

foreach ($arr as &$item) {

$pid = $item['pid'];

if ($pid == 0) {

$arr2[] = &$item;

} else {

if (isset($arr1[$pid])) {

$arr1[$pid]['children'][] = &$item;

}

}

}

unset($item);

echo json_encode($arr2);

exit;


延伸阅读
  1. 上一篇:
  2. 下一篇:
发表评论