我有一个PHP数组,这些类别如下
$category = array(
1 => array(
'id' => 1,
'parentID' => 0,
'name' => 'SUV auto parts'
),
2 => array(
'id' => 2,
'parentID' => 1,
'name' => 'Engine Related'
),
3 => array(
'id' => 3,
'parentID' => 2,
'name' => 'Spark Plugs'
),
4 => array(
'id' => 4,
'parentID' => 2,
'name' => 'Engine Oil'
),
5 => array(
'id' => 5,
'parentID' => 1,
'name' => 'Body related'
),
6 => array(
'id' => 6,
'parentID' => 0,
'name' => 'Sedan auto parts'
),
7 => array(
'id' => 7,
'parentID' => 6,
'name' => 'Engine Related'
),
);我已经设法像这样显示菜单树,
SUV汽车配件发动机相关火花塞发动机油车身相关轿车零部件发动机相关
我试着用https://stackoverflow.com/a/48598077/12677030做面包屑
function breadcrumber($array,$id){
static $result=[]; // declare the storage variable without losing elements during recursion
if(isset($array[$id])){ // if target exists
$result[]=$array[$id]['name']; // store title text
$parent=$array[$id]['parentID']; // assign new target
unset($array[$id]); // remove possibility of an infinite loop
breadcrumber($array,$parent); // recurse
}
return $result;
}
echo implode(' -> ',breadcrumber(array_column($category,NULL,'id'),4));功能很小,效果很好,但是.
我想不出用/category.php?id=
来显示它
发动机油->发动机相关的-> SUV汽车零部件
我不想让它变成那样,
SUV汽车零部件->发动机相关的->发动机油
我也尝试过这种方法,https://stackoverflow.com/a/52571259/12677030似乎解决了我的两个问题,..however,这不会为一个父、一个孩子生成面包屑。
轿车汽车零部件->发动机相关
只在
父类->子类别->子类别
如果有人提出解决办法来纠正这些问题,我将不胜感激。
预期产出将是
SUV auto Parts -> Engine Related -> Engine Oil
<a href="/category/1">SUV auto Parts</a> -> <a href="/category/2">Engine Related</a> -> <a href="/category/4">Engine Oil</a>或只适用于一个子女类别;
Sedan auto Parts -> Engine Related
<a href="/category/6">Sedan auto Parts</a> -> <a href="/category/7">Engine Related</a>发布于 2020-01-09 21:30:21
#1的解决方案
@IncredibleHat的学分
替换
$result[]=$array[$id]['name'];使用
$result[]='<a href="/category.php?id='. $array[$id]['id'] .'">'. $array[$id]['name'] .'</a>';给出输出Engine Oil -> Engine Related -> SUV auto Parts。
<a href="/category.php?id=4">Engine Oil</a> -> <a href="/category.php?id=2">Engine Related</a> -> <a href="/category.php?id=1">SUV auto Parts</a>#2的解决方案
使用称为array_reverse https://www.php.net/manual/en/function.array-reverse.php的PHP数组函数
替换
return $result;使用
return array_reverse($result);现在,输出将是;SUV auto Parts -> Engine Related -> Engine Oil
<a href="/category.php?id=1">SUV auto Parts</a> -> <a href="/category.php?id=2">Engine Related</a> -> <a href="/category.php?id=4">Engine Oil</a>https://stackoverflow.com/questions/59670108
复制相似问题