栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

PHP数组转树结构以及树结构转数组

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

推荐:《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);
    }


Laravel

#数组转树结构#

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数组转树结构以及树结构转数组的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/262629.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号