2014-03-07 28 views
1
$menu = array(
    0 =>'top', 
    1 =>'photography', 
    2 =>'about' 
); 

<?php 
function main_menu ($menu) { 
    $return = '<div class="menu_entry">' . PHP_EOL .''; 
     foreach($menu as $key => $value) 
     { 
     $return .= '<a class="menu" href="index.php#' . $menu[$key] . '">' . $menu[$key] . '</a>' . PHP_EOL .''; 
    } 
    $return .= '</div>'; 
return $return; 
} 
?> 

<?php echo main_menu($menu[1]); ?> 

我基本上想要做的是當我回顯菜單時傳遞特定的數組值。 我正在建立一個帶有錨點的單頁網站,我想傳遞值,所以我可以回顯出「頂部」鏈接。通過函數參數打印特定數組值

我一直在關於如何通過函數傳遞$ key值的問題。

**編輯:我試圖打印特定的鏈接。我想要一個能夠打印鏈接的函數,但我想通過函數參數指定要打印的鏈接。

例如:

<?php echo main_menu($key = '0'); ?> 
result: 
prints url: top 

<?php echo main_menu($key = '2'); ?> 
result: 
prints url: photography 

**

(A缺乏行話使得它有點難以解釋,甚至難以谷歌 我得到了我的書在我的面前,但是這是採取更多的時間比它應該)

+3

目前尚不清楚你要完成什麼。你能澄清更多關於「*我被困在如何通過函數傳遞$ key值的問題。*」嗎? –

+0

你是否試圖在指定索引上打印菜單? –

回答

1

你要麼需要通過整個數組和循環,或通過一個單一的陣列項目,而不是循環:

單項:

function main_menu ($menu) { 
    $return = '<div class="menu_entry">' . PHP_EOL .''; 
    $return .= '<a class="menu" href="index.php#' . $menu . '">' . $menu . '</a>' . PHP_EOL .''; 
    $return .= '</div>'; 

    return $return; 
} 

echo main_menu($menu[1]); 

整個陣列:

function main_menu ($menu) { 
    $return = '<div class="menu_entry">' . PHP_EOL .''; 

    foreach($menu as $value) { 
     $return .= '<a class="menu" href="index.php#' . $value . '">' . $value . '</a>' . PHP_EOL .''; 
    } 
    $return .= '</div>'; 

    return $return; 
} 

echo main_menu($menu); 

你不需要$menu[$key]只使用$value

+0

啊,是的,當然!我首先使用了$ menu [$ i]的for循環,我想我改變它的時候並沒有認爲它是低谷。 您的第一個解決方案是我一直在尋找的,謝謝! – Rico

0

嘗試:

echo main_menu($menu); // You will get your links printed 

取而代之的

echo main_menu($menu[1]); // In this case error is occured like : **Invalid argument supplied for foreach** 

注:您可以使用$值,而不是$菜單[$關鍵]

+0

如果回顯$菜單,它會顯示所有條目。 我想選擇要打印的特定條目。 – Rico

+0

@Rico如果你想製作特定的鏈接,而不是你必須循環解析它們,更新你的問題,我會幫你 – tnanoba

+0

@Rico我的意思是,解釋你在特定鏈接中的含義是什麼?告訴我可取的輸出 – tnanoba

0

您是否應該在環路中使用$value?並傳遞整個數組而不是$menu數組的一個項目?

$menu = array(
    0 =>'top', 
    1 =>'photography', 
    2 =>'about' 
); 

<?php 
function main_menu ($menu) { 
    $return = '<div class="menu_entry">' . PHP_EOL .''; 
     foreach($menu as $key => $value) 
     { 
     $return .= '<a class="menu" href="index.php#' . $value . '">' . $value . '</a>' . PHP_EOL .''; 
    } 
    $return .= '</div>'; 
return $return; 
} 
?> 

<?php echo main_menu($menu); ?>