【问题标题】:Convert PHP Array to HTML Breadcrumbs将 PHP 数组转换为 HTML 面包屑
【发布时间】:2011-12-11 12:38:42
【问题描述】:

我要转换以下php数组:

$crumbs = array(
'Financial Accounting'  => 'financial',
'Ratio Analysis'        => 'ratios',
'Current Ratio'         => 'current-ratio'
);

到html面包屑如下图:

<ul>
  <li><a href="/">Home</a></li>
  <li><a href="/financial/">Financial Accounting</a></li>
  <li><a href="/financial/ratios/">Ratios Analysis</a></li>
  <li><a href="/financial/ratios/current-ratio">Current Ratio</a></li>
</ul>

任何人请告诉我如何在 php 中做到这一点。谢谢!!

更新:感谢您的帮助。以下是对我有用的:

<?php
$dotname = basename($_SERVER['PHP_SELF']);
$crumbs = array(
'Financial Accounting'  => 'financial',
'Ratio Analysis'        => 'ratios',
'Current Ratio'         => 'current-ratio'
);
echo("<ul>\n<li><a href=\"/\">Home</a>&nbsp;&nbsp;&gt;</li>\n");
foreach ($crumbs as $atext => $aloc) {
    if ($dotname != 'index.php' && $aloc == end($crumbs)) {
        $url .= '/'.$aloc;
        echo("<li><a href=\"$url\">$atext</a></li>\n");
    } else {
        $url .= '/'.$aloc;
        echo("<li><a href=\"$url/\">$atext</a>&nbsp;&nbsp;&gt;</li>\n");
    }
}
echo('</ul>');
?>

【问题讨论】:

  • 这不是“如何解决问题”而是“给我看看 codez”类型的问题。我只能说你需要 foreach 和一个包含以前面包屑的临时字符串。
  • 你已经尝试了什么?请发布您现有的代码,即使它已损坏。让我们知道您遇到了哪个特定部分,我们会帮助您解决这个问题。
  • 看起来另一个孩子侥幸让别人为他们做作业。免费不少...
  • 看来你需要先学习编码。你有没有尝试过任何事情?如果是,请显示代码。也许我们可以解决它。
  • 有点好笑。有5个答案,只有一个答对了。 :D 得分猎人! :D

标签: php html arrays breadcrumbs


【解决方案1】:

我会用一个 foreach 和一个变量来记住路径。几秒钟后我会举出一个例子。

A Working Can be Found Here!

【讨论】:

  • 请不要,让他为此挣扎。
  • 您的解决方案对我帮助很大。非常感谢。我对其进行了一些修改以适应我的网站结构,因为它在深层页面中没有尾部斜杠。
  • 当然可以。下次一定要阅读手册,也许考虑上几节课。你问的是一个非常基本的字符串操作。 @erfan
【解决方案2】:

类似的东西?:

<ul>
<?php
foreach($crumb as $name=>$href){
   echo "<a href=/'$href'>$name</a>"; 
}

?>

【讨论】:

    【解决方案3】:
    <ul>
    <li><a href="/">Home</a></li>
    <?php
    $path = '/';
    foreach($crumbs as $name => $href) {
        echo '<li><a href="'.$path.$href.'/"></li>';
        $path .= $name.'/';
    }
    ?>
    </ul>
    

    【讨论】:

      【解决方案4】:

      你可以用这个

      <?php
      function ConvertPHPArrayToBreadcrumb($arr) {
          //convert the php array to html breadcrumb as required in 
          //http://stackoverflow.com/questions/8464019/convert-php-array-to-html-breadcrumbs
          $crmbs = '<ul> <li><a href="/">Home</a></li>';
          foreach ($arr as $key => $val) {
              $crmbs .= '<li><a href="' . $val . '/">' . $key . '</a></li>';
          }
          $crmbs .= "</ul>";
          return $crmbs;
      }
      
      
      //define the array
      $crumbs = array(
          'Financial Accounting' => 'financial',
          'Ratio Analysis' => 'ratios',
          'Current Ratio' => 'current-ratio'
      );
      
      //call the convert function
      $html_crumbs = ConvertPHPArrayToBreadcrumb($crumbs);
      
      //echo the reuls
      echo($html_crumbs);
      ?>
      

      【讨论】:

      • 你的函数名在中途改变了。
      • ..它没有做他想要的。但没关系,不要给他看代码。
      【解决方案5】:
      function showcrumbs($crumbs) {
          echo '<ul><li><a href="/">Home</a></li>';
          $path='/';
              foreach($crumbs as $name=>$href){
                  echo '<li><a href="'.$path.$href.'">'.$name.'</a></li>'; 
                  $path = $path.$href.'/';
              }
          echo '</ul>';
      }
      

      用法:

      <?php
      function showcrumbs($crumbs) {
          echo '<ul><li><a href="/">Home</a></li>';
          $path='/';
              foreach($crumbs as $name=>$href){
                  echo '<li><a href="'.$path.$href.'">'.$name.'</a></li>'; 
                  $path = $path.$href.'/';
              }
          echo '</ul>';
      }
      $crumbs = array(
      'Financial Accounting'  => 'financial',
      'Ratio Analysis'        => 'ratios',
      'Current Ratio'         => 'current-ratio'
      );
      showcrumbs($crumbs);
      ?>
      

      【讨论】:

      • 这不是他想要的。
      • 每次迭代都必须嵌套 url。 p.s.唯一做对的人是@haynar。
      • 这输出的正是他的例子所要求的?
      猜你喜欢
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多