PHP:从多维数组创建面包屑
我有一个多维数组,如下所示:PHP:从多维数组创建面包屑,php,multidimensional-array,breadcrumbs,Php,Multidimensional Array,Breadcrumbs,我有一个多维数组,如下所示: $sidebar_booking = array( 'booking' => array( 'levels' => array('1'), 'title' => 'Booking', 'icon' => 'fa-calendar', 'sub' => array( 'rates-availability' => array(
$sidebar_booking = array(
'booking' => array(
'levels' => array('1'),
'title' => 'Booking',
'icon' => 'fa-calendar',
'sub' => array(
'rates-availability' => array(
'levels' => array('1'),
'title' => 'Tariffe e Disponibilità',
'sub' => array(
'booking-overview' => array(
'levels' => array('1'),
'title' => 'Panoramica',
'url' => '/ctrl/booking/overview/',
),
'booking-setup' => array(
'levels' => array('1'),
'title' => 'Setup Camere / Tariffe',
'url' => '/ctrl/booking/setup/',
),
'booking-prices' => array(
'levels' => array('1'),
'title' => 'Modifica Prezzi',
'url' => '/ctrl/booking/prices/',
),
'booking-availability' => array(
'levels' => array('1'),
'title' => 'Modifica Disponibilità',
'url' => '/ctrl/booking/availability/',
),
'booking-openclose' => array(
'levels' => array('1'),
'title' => 'Apri / Chiudi Camere',
'url' => '/ctrl/booking/openclose/',
),
'booking-restrictions' => array(
'levels' => array('1'),
'title' => 'Restrizioni',
'url' => '/ctrl/booking/restrictions/',
),
'booking-rates' => array(
'levels' => array('1'),
'title' => 'Tariffe',
),
),
),
'booking-promo' => array(
'levels' => array('1'),
'title' => 'Promozioni',
'url' => '/ctrl/booking/promo/',
),
'booking-reservations' => array(
'levels' => array('1'),
'title' => 'Prenotazioni',
'url' => '/ctrl/booking/reservations/',
),
)
),
);
我用它来创建我的(嵌套的)侧栏菜单
现在,给定一个与上面示例中的url
之一匹配的字符串,我想使用title
s构建面包屑
例如,给定字符串/ctrl/booking/prices/
,我想得到以下列表(然后我可以使用CSS转换为面包屑):
url
)
我真的被卡住了,这是我的技能问题:-(提前谢谢!你可以这样试试
function getTitle(Array $arr, $find) {
if (isset($arr['url']) && $arr['url'] == $find) {
return $arr['title'];
}
if (isset($arr['sub'])) {
return $arr['title'] . '/' . getTitle( $arr['sub'], $find);
}
return false;
}
echo getTitle($menu, $url);
编辑版本
function getTitle(Array $arr, $find) {
foreach($arr as $val){
if (isset($val['url']) && $val['url'] == $find) {
return '<li><a href="' . $val['url'] . '">' . $val['title'] . '</a></li>';
}
if (isset($val['sub'])) {
return '<li>' . $val['title'] . '</li>' . getTitle( $val['sub'], $find);
}
}
return false;
};
函数getTitle(数组$arr,$find){
外汇($arr作为$val){
如果(isset($val['url'])&&$val['url']==$find){
返回“”;
}
如果(isset($val['sub'])){
返回“您要查找的基本上是多维数组的数组搜索功能。本主题介绍了一些选项:这几乎可以,我在回答中编辑了:-),但这里出现了一个我没有说明的问题:可以有许多嵌套的[sub],这使事情复杂化。。。