2011-12-11 28 views
-4

我想下面的PHP數組轉換:轉換PHP Array對HTML麪包屑

$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>'); 
?> 
+1

這不是 「如何解決問題」,而是 「告訴我codez」 類型的問題。我只能說,你需要foreach和一個臨時字符串,它將包含以前的麪包屑。 –

+1

你已經試過了什麼?請發佈您的現有代碼,即使它已損壞。讓我們知道你陷入了哪個特定部分,我們將幫助你解決這個問題。 –

+1

它看起來像另一個孩子逃脫讓別人爲他們做功課。免費不少於... –

回答

1

我會用一個foreach和一個變量來記住路徑。我會在幾秒鐘內掀起一個例子。

A Working Can be Found Here!

+4

請不要讓他爲此而掙扎。 – Joost

+0

添加爲擾流板。 –

+0

哈哈不錯的一個:-) – Joost

1

財產以後那樣?:

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

?>

1
<ul> 
<li><a href="/">Home</a></li> 
<?php 
$path = '/'; 
foreach($crumbs as $name => $href) { 
    echo '<li><a href="'.$path.$href.'/"></li>'; 
    $path .= $name.'/'; 
} 
?> 
</ul> 
+2

Nooo!不要給他看codez! :D –

+0

:D你說得對,他應該自己想出 – haynar

1

可以使用此

<?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); 
?> 
+0

你的函數名稱在中途改變。 – 2011-12-11 12:54:55

+0

我修改它,對不起;) –

+0

..並沒有做他想做的事。但沒關係,不要向他展示codez。 –

0
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); 
?> 
+0

這不會做他想做的事。 –

+0

不是嗎?我不明白爲什麼不。 – 2011-12-11 13:01:02

+0

這些網址必須在每次迭代中嵌套。附:唯一一個正確的人是@haynar。 –