【问题标题】:PHP Dynamic BreadcrumbPHP 动态面包屑
【发布时间】:2010-04-08 11:31:34
【问题描述】:

我从某人那里得到了这段代码,它工作得很好,我只想从数组的最后一个元素中删除链接:

//get rid of empty parts
$crumbs = array_filter($crumbs);

$result = array();
$path = '';
foreach($crumbs as $crumb){
    $path .= '/' . $crumb;
    $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb));
    $result[] = "<a href=\"$path\">$name</a>";

}

print implode(' > ', $result);

这将输出例如: 内容 > 常用 > 文件

我只想从最后一项中删除链接-“文件”只是纯文本.. 我尝试自己计算数组项,然后如果数组项是最后一项,则将最后一项打印为纯文本..但我仍然是菜鸟,我还没有设法得到正确的结果..

谢谢!

【问题讨论】:

    标签: php dynamic hyperlink breadcrumbs


    【解决方案1】:

    这应该可行:

    $crumbs = array_filter($crumbs);
    
    $result = array(); $path = '';
    //might need to subtract one from the count...
    $count = count($crumbs);
    foreach($crumbs as $k=>$crumb){
         $path .= '/' . $crumb;
         $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumb));
         if($k != $count){
             $result[] = "<a href=\"$path\">$name</a>";
         } else {
             $result[] = $name;
         }
    }
    
    print implode(' > ', $result);
    

    【讨论】:

    • 假设你的数组索引为 0 -> N
    【解决方案2】:

    您可以简单地调整现有代码以使用“正常”循环(而不是 foreach 迭代器)来实现此目的。

    例如:

    //get rid of empty parts
    $crumbs = array_filter($crumbs);
    
    $result = array();
    $path = '';
    $crumbCount = count($crumbs);
    for($crumbLoop=0; $crumbLoop<$crumbCount; $crumbLoop++) {
        $path .= '/' . $crumbs[$crumbLoop];
        $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumbs[$crumbLoop]));
        $result[] = ($crumbLoop != $crumbCount -1) ? "<a href=\"$path\">$name</a>" : $name;
    }
    
    print implode(' > ', $result);
    

    注意:我目前无法访问 PHP,所以上面的内容可能不会没有错误,但你应该明白了。

    【讨论】:

      【解决方案3】:
      for($i=0;$i< sizeof($crumbs);$i++) {
         $path .= '/' . $crumbs[$i];
         $name = ucfirst(str_replace(array(".php","_"),array(""," "), $crumbs[$i]));
      
         if ($i != sizeof($crumbs)-1) {
            $result[] = "<a href=\"$path\">$name</a>";
         }else {
            $result[] = $name;
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-28
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多