【原创】将数组按照固定格式输出内容

【原创】将数组按照固定格式输出内容

$arr = [
[
“name” => “电子产品”,
“children”=>[
       [
“name” => “手机”,
“children”=>[
               [
“name” => “安卓”,
“children”=>[
                       [
“name” => “小米”,
“children”=>[]
                       ],
                       [
“name” => “华为”,
“children”=>[]
                       ],
                     ]
               ],
               [
“name” => “苹果”,
“children”=>[]
               ]
           ]
       ],
       [
“name” => “笔记本电脑”,
“children”=>[]
       ]
]
],
[
“name” => “服装”,
“children”=>[
        [
“name” => “上衣”,
“children”=>[]
        ]
 ]
]];

将以上数组,按照最下面的固定格式进行输出:

public function dealArr($arr, $i=0){
    $str = ;
    $start = $i;  // 严格定义层级,不受+1的限制
    if($start == 0){
        $str = PHP_EOL;  // 一开始需要换行处理
    }
    foreach($arr as $key=>$val){
        // 需要添加的空格
        $brNum = “”;
        for($j=0; $j<$start; $j++){  // 计算前面所需要填充的空格
            $brNum .= ”    “;
        }
        $str .= $brNum.$val[‘name’].PHP_EOL;  // 整个前面的空格和后面的换行
       
        if(count($val[‘children’]) > 0){  // 如果是数组的话,继续分解
            $i = $start+1;  // 分层次等级
            $str .= $this->dealArr($val[‘children’], $i);
        }
    }
    return $str;
}

数据结果为:

string(131) "
电子产品
    手机
        安卓
            小米
            华为
        苹果
    笔记本电脑
服装
    上衣
"

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据