首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php -如何将“tree- array”转换为数组

在PHP中,可以使用递归的方式将"tree-array"转换为数组。下面是一个示例代码:

代码语言:php
复制
function treeToArray($tree) {
    $result = array();

    foreach ($tree as $node) {
        $data = array(
            'id' => $node['id'],
            'name' => $node['name'],
            // 添加其他需要的属性
        );

        if (isset($node['children'])) {
            $data['children'] = treeToArray($node['children']);
        }

        $result[] = $data;
    }

    return $result;
}

$tree = array(
    array(
        'id' => 1,
        'name' => 'Node 1',
        'children' => array(
            array(
                'id' => 2,
                'name' => 'Node 1.1',
                'children' => array(
                    array(
                        'id' => 3,
                        'name' => 'Node 1.1.1',
                    ),
                    array(
                        'id' => 4,
                        'name' => 'Node 1.1.2',
                    ),
                ),
            ),
            array(
                'id' => 5,
                'name' => 'Node 1.2',
            ),
        ),
    ),
    array(
        'id' => 6,
        'name' => 'Node 2',
    ),
);

$result = treeToArray($tree);
print_r($result);

这段代码定义了一个treeToArray函数,它接受一个"tree-array"作为参数,并将其转换为数组。函数使用递归的方式遍历树的每个节点,将节点的属性添加到结果数组中。如果节点有子节点,则递归调用treeToArray函数处理子节点。

以上代码的输出结果如下:

代码语言:txt
复制
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Node 1
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 2
                            [name] => Node 1.1
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 3
                                            [name] => Node 1.1.1
                                        )

                                    [1] => Array
                                        (
                                            [id] => 4
                                            [name] => Node 1.1.2
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [id] => 5
                            [name] => Node 1.2
                        )

                )

        )

    [1] => Array
        (
            [id] => 6
            [name] => Node 2
        )

)

这个函数可以将任意层级的"tree-array"转换为数组,并保留原始结构。在实际应用中,您可以根据需要修改函数的属性映射和处理逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何将Array换为List?

本教程展示了在Java中将数组换为列表的几种方法。让我们开始吧! Arrays.asList 可以使用 Arrays.asList() 方法, 该方法接受一个数组作为输入,并返回一个列表作为输出。...使用Arrays.asList()方法,生成一个可修改的List Using 为了支持在使用array . aslist()时从生成的列表中添加/删除元素,可以从结果中初始化一个完全独立的列表。...ArrayList(Arrays.asList(names)); Java 8 使用Java 8,您可以使用arres .stream()和collections . tolist()实用工具方法将数组换为列表...namesLst = Arrays.stream(names).collect(Collectors.toList()); return namesLst; } Arrays.stream() 将数组换为流...然后将该流转换为列表 Collectors.toList(). 返回列表的默认类型是 ArrayList.

1.4K20
  • php 数组json对象 和json 数组

    php数组json的规则是:当没有指定索引(0~n)时会转换为json数组,而指定了索引会转换为json对象。 PHP数组JSON的时候,如果索引连续,则转成数组。...如果索引不连续,则会转成对象 1、没有指定索引的情况: $attr = array("a","b","c","d","e"); 转换为json: ["a","b","c","d","e"] 2、有指定索引的情况...: $attr = array("a"=>"a","b"=>"b","c"=>"c","d"=>"d","e"=>"e"); 转换为json: 1 2 3 4 5 6 7 {..."a": "a", "b": "b", "c": "c", "d": "d", "e": "e" } 3、默认索引,但是索引不连续,也会转成对象【unset() 做数组处理时会使默认索引丢失...,可以使用array_values()初始化索引】 $attr = array("0"=>"a","1"=>"b","3"=>"c","4"=>"d","5"=>"e"); 转换json: 1 2 3

    6.4K10

    PHP数据结构(八) ——赫夫曼树实现字符串编解码(实践1)

    由于需要分两篇来讲,本篇主要讲解编码的底层实现过程,即权值数组排序、赫夫曼树合成过程、合成的子树插入权值数组的过程、通过赫夫曼树获取字符编码的过程。 源代码如下: <?...$codeStack=array()){ //当data不空时,其为叶子节点,则直接返回拼接好的字符串 if($tree->...($codeStack,0); $res1 =$this->getCharEncodedRecu($tree->left, $codeStack)...—赫夫曼树实现字符串编解码(理论) PHP数据结构(七) ——串与实现KMP算法 PHP数据结构(六) ——树与二叉树之概念及存储结构 PHP数据结构(六) ——数组的相乘、广义表 PHP数据结构(五)...——数组的压缩与PHP数据结构(四) ——队列 PHP数据结构(三)——运用栈实现括号匹配 PHP数据结构(二)——链式结构线性表 PHP数据结构(一)——顺序结构线性表

    794120

    Java 如何把 php 数组换为 json 数据

    最近做一些网站的数据迁移,遇到数据库的某个字段存的数据既有 json 数据,也有 php 数组的字符串。...而小编又是用 Java 语言开发的,最好的办法就是把 php 数组换为 json 数据,在网上都没有找到比较合适使用 Java 进行处理的。...当然,有一些网站可以在线运行 php 代码,可以直接调用这些网站进行处理。但是这样比较麻烦,可用性也不高。 通过对 php 数组的分析,可以替换相应的字符、分割等操作后,转换为 json。...编写主要方法 /** * 把php数组换为json * @param str php数组字符串 * @return json对象 */ public static JSONObject...(str); System.out.println("php数组转换后的json:\n" + jsonObject.toJSONString()); } 运行结果: 原php数据: array

    2K30

    php数组函数array_push()、array_pop()及array_shift()简单用法示例

    本文实例讲述了php数组函数array_push()、array_pop()及array_shift()简单用法。分享给大家供大家参考,具体如下: <?...php /** * array_push()将一个或多个单元压入数组的末尾(入栈) */ $stack = array("Java", "Php", "C++"); array_push($stack...<br "; /** * array_pop() 将数组最后一个单元弹出(出栈) */ $stack = array("Java", "Php", "C++", "C#", "Ruby"); array_pop...<br "; /** * array_shift()将数组开头的单元移出数组 array_unshift()在数组开头插入一个或多个单元 */ $stack = array("Java", "Php...= C# [3] = Ruby ) 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string

    61731
    领券