$arr = [
[
"name" => "d",
"parent" => "b",
],
[
"name" => "e",
"parent" => "b",
],
[
"name" => "f",
"parent" => "c",
],
[
"name" => "g",
"parent" => "c",
],
[
"name" => "b",
"parent" => "a",
],
[
"name" => "c",
"parent" => "a",
],
[
"name" => "a",
"parent" => "",
],
];
/**
* 深度 d
* 数量 n
* 复杂度 d*n
*/
$depth = [];
$O = 0;
for($i=0; $i
$set = false;
foreach ($arr as $key => $dArray){
$name = $dArray["name"];
$parent = $dArray["parent"];
if(!isset($depth[$name])){
if(empty($parent)){
$depth[$name] = 1;
unset($arr[$key]);
$set = true;
} else {
if(isset($depth[$parent])){
$depth[$name] = $depth[$parent]+1;
unset($arr[$key]);
$set = true;
} else {}
}
} else {}
$O++;
}
if(!$set){
break;
} else {}
}
echo "循环次数={$O}";
var_dump($depth);
输出:
循环次数=17
D:\wamp64\www\test.php:73:
array (size=7)
'a' => int 1
'b' => int 2
'c' => int 2
'd' => int 3
'e' => int 3
'f' => int 3
'g' => int 3
转载于:https://my.oschina.net/u/4054486/blog/3081534
点赞
收藏
分享
文章举报
cihan7608
发布了0 篇原创文章 · 获赞 0 · 访问量 1249
私信
关注