我有一個多維陣列。
$tree= [
"wood"=> [
"segun",
"koroi",
"karosin"
],
"food"=> [
'grain',
"vegetable"=> [
"potato",
"tomato"=>[
"small"=>["cherri","local"],
"big"=>["green","red"]
],
"radish"
],
"fruits"=> [
"mango"=>[
"lengra",
"amrupali",
"fozli",
"him sagar"
],
"jak fruits"
]
],
"medicine"=> [
"nim",
"arjun",
"amla"
],
"oxygen",
"computer"
];
我正在使用此代碼來顯示
function treeView($tree){
$markup='';
foreach ($tree as $key=>$value){
$markup.= '<li>'. (is_array($value) ? $key. treeView($value) : $value) .'</li>';
}
return "<ul>".$markup."</ul>";
}
我想顯示每個元素的最多 2 個節點。這不是固定的,它可以是第 n 個節點,取決于用戶輸入。我不明白如何解決這個問題。
如果用戶輸入 3,我想顯示這樣的輸出

如果用戶輸入 2,我想顯示這樣的輸出

uj5u.com熱心網友回復:
只需添加一個可選的“默認為 0”level引數。
function treeView($tree, $max_level = 2, $current_level = 0)
{
if ($max_level == $current_level) {
return "";
}
$markup = '';
foreach ($tree as $key => $value) {
$markup .= '<li>' . (is_array($value) ? $key . treeView($value, $max_level, $current_level 1) : $value) . '</li>';
}
return "<ul>" . $markup . "</ul>";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/510093.html
標籤:php算法树视图
上一篇:有沒有一種演算法可以找到一維盒子在一條線上的最佳位置?
下一篇:請讓我知道我哪里出錯了
