<?php
$arr=[
['id'=>1,'pid'=>0,'name'=>'体育'],
['id'=>2,'pid'=>0,'name'=>'娱乐'],
['id'=>3,'pid'=>0,'name'=>'科技'],
['id'=>4,'pid'=>0,'name'=>'新闻'],
['id'=>5,'pid'=>1,'name'=>'篮球'],
['id'=>6,'pid'=>1,'name'=>'足球'],
['id'=>7,'pid'=>1,'name'=>'乒乓球'],
['id'=>8,'pid'=>1,'name'=>'羽毛球'],
['id'=>9,'pid'=>2,'name'=>'八卦'],
['id'=>10,'pid'=>3,'name'=>'手机'],
['id'=>11,'pid'=>3,'name'=>'电脑'],
['id'=>12,'pid'=>4,'name'=>'国际新闻'],
['id'=>13,'pid'=>4,'name'=>'国内新闻'],
['id'=>14,'pid'=>12,'name'=>'欧洲新闻'],
['id'=>15,'pid'=>10,'name'=>'华为'],
['id'=>16,'pid'=>10,'name'=>'小米'],
['id'=>17,'pid'=>15,'name'=>'华为P50'],
['id'=>18,'pid'=>15,'name'=>'华为P40']
];
//无限分级
function wx(array $arr,int $pid,int $level){
static $arr1;
if(!empty($arr)){
for($i=0;$i<count($arr);$i++){
if($arr[$i]['pid'] == $pid){
//其实想输出数组的可惜不会了
echo str_repeat(' ',$level).$arr[$i]['name'].'<br>';
wx($arr,$arr[$i]['id'],$level+1);
}
}
}
}
//回调函数
call_user_func_array('wx',[$arr,0,0]);
//回调匿名函数
$func=function (array $arr,int $pid,int $level){
static $arr1;
if(!empty($arr)){
for($i=0;$i<count($arr);$i++){
if($arr[$i]['pid'] == $pid){
//其实想输出数组的可惜不会了
echo str_repeat(' ',$level).$arr[$i]['name'].'<br>';
wx($arr,$arr[$i]['id'],$level+1);
}
}
}
};
call_user_func_array($func,[$arr,0,0]);