通过函数参数打印特定的数组值

时间:2014-03-07 16:38:14

标签: php

$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

**

(缺乏行话使得解释更难,甚至更难谷歌。 我把书放在我的面前,但这需要的时间比它应该多得多。)

3 个答案:

答案 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

答案 1 :(得分: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**

注意:您可以使用 $ value 代替 $ menu [$ key]

答案 2 :(得分: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); ?>