2014-03-07 23 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); ?>