本文将为大家详细介绍“PHP数组转树结构以及树结构转数组的示例”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“PHP数组转树结构以及树结构转数组的示例”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧。
php是一个嵌套的缩写名称,指的是英文超级文本预处理语言(php:Hypertext Preprocessor)的缩写,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。
public function index()
{
$data = [
[
'id'=>1,
'parent_id' => 0,
'name' => '第一个'
],
[
'id'=>2,
'parent_id' => 0,
'name' => '第二个'
],
[
'id'=>3,
'parent_id' => 1,
'name' => '第三个'
],
];
$r = $this->list_to_tree($data);
dump($r);
}
#数组转树结构#
function list_to_tree($list, $root = 0, $pk = 'id', $pid = 'parent_id', $child = 'children'){
// 创建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 = 0;
if (isset($data[$pid])) {
$parentId = $data[$pid];
}
if ((string)$root == $parentId) {
$tree[] = &$list[$key];
} else {
if (isset($refer[$parentId])) {
$parent = &$refer[$parentId];
$parent[$child][] = &$list[$key];
}
}
}
}
return $tree;}
#树结构转数组#
function tree_to_list($tree = [], $children = 'children'){
if (empty($tree) || !is_array($tree)) {
return $tree;
}
$arrRes = [];
foreach ($tree as $k => $v) {
$arrTmp = $v;
unset($arrTmp[$children]);
$arrRes[] = $arrTmp;
if (!empty($v[$children])) {
$arrTmp = tree_to_list($v[$children]);
$arrRes = array_merge($arrRes, $arrTmp);
}
}
return $arrRes;}
如果你能读到这里,小编希望你对“PHP数组转树结构以及树结构转数组的示例”这一关键问题有了从实践层面最深刻的体会,具体使用情况还需要大家自己动手实践使用过才能领会,如果想阅读更多相关内容的文章,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。