为了账号安全,请及时绑定邮箱和手机立即绑定

来自键名的多维数组层次结构

来自键名的多维数组层次结构

PHP
慕的地10843 2021-06-14 13:05:19
我想知道如何通过标识符 Key NAME 获得层次结构,只是 PHP 的值。我已经尝试过一些内爆函数但没有成功。我很感激任何帮助。谢谢这是一个例子:$treeArray = (Array(    [0] => Array        (            [name] => S-ATLANTICO-1            [id] => 1HIk_jh2GHo2VnBbUI8c3P9cADY4NnKQ5            [parents] =>             [children] => Array                (                    [0] => Array                        (                            [name] => TESTE                            [id] => 1EYi_CF7gjANq_MPnUOkquJI609Jkhzf0                            [parents] => 1HIk_jh2GHo2VnBbUI8c3P9cADY4NnKQ5                        )                    [1] => Array                        (                            [name] => SAPO                            [id] => 1I8QxJiMa11U2s4ncPxyqfdCPk_6dQ9Tl                            [parents] => 1HIk_jh2GHo2VnBbUI8c3P9cADY4NnKQ5                            [children] => Array                                (                                    [0] => Array                                        (                                            [name] => SAPO-1                                            [id] => 1KGzjcy79TCKp-c6T1Xxm5WqswXhqFlb7                                            [parents] => 1I8QxJiMa11U2s4ncPxyqfdCPk_6dQ9Tl                                        )                                      )                                )                        )                )        )));这个结果是可以的:在数组中或在屏幕中逐行打印。S-ATLANTICO-1/S-ATLANTICO-1/TESTES-ATLANTICO-1/SAPOS-ATLANTICO-1/SAPO/SAPO-1S-ATLANTICO-1/SAPO/carlos.csvS-ATLANTICO-1/SAPO/logo-news_sa.pngS-ATLANTICO-1/DOCUMENTOSS-ATLANTICO-1/DOCUMENTOS/carlos-excelS-ATLANTICO-1/DOCUMENTOS/carlos-excel.xlsxS-ATLANTICO-1/DOCUMENTOS/SAPOS-ATLANTICO-1/DOCUMENTOS/PRECIOS
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

这应该是这样的:


function rec($arr, $prefix ="") {

    if ($prefix != "") $prefix .= "/";

    foreach($arr as $e) {

        echo $prefix . $e['name'];

        if (!empty($e['children']))

            rec($e['children'], $prefix . $e['name']);

    }

}

我不在电脑上,所以这个伪代码只有...


查看完整回答
反对 回复 2021-06-19
?
红颜莎娜

TA贡献1842条经验 获得超12个赞

$array = [

    ['App', 'Classes', 'Auth'],

    ['App', 'Classes', 'Auth'],

    ['App', 'Classes', 'Middleware'],

    ['App', 'Classes', 'Phone'],

    ['App', 'Classes', 'Auth'],

    ['App', 'Mail'],

    ['App', 'Mail', 'Sender'],

    ['App', 'Box'],

    ['Bla', 'bli'],

];


var_dump(arrayToNamespace($array));


function arrayToNamespace($array) {

    $newArr = array();


    foreach ($array as $nsArr) {

        $wns = &$newArr;

        foreach ($nsArr as $ns) {

            if (!isset($wns[$ns])) {

                $wns[$ns] = array();

            }

            $wns = &$wns[$ns];

        }

    }

    return $newArr;

}


查看完整回答
反对 回复 2021-06-19
  • 2 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信