1

我有一个数组,我们称之为 $menus,它包含如下内容:

Array(
    [Main] => Array (
        [menu_name] => Main
        [title] => Main Menu
    )
    [Nav] => Array (
        [menu_name] => Navigation
        [title] => Navigation Menu
    )
    [Custom] => Array (
        [menu_name] => User Custom Menu
        [title] => My Menu
    )
)

……等等。

我需要创建一个只包含菜单名称列表的新数组。所以如果我要得到,比如说,只是导航菜单的名字,我会做

$module_menu_name = $menus [Nav][menu_name];

现在 $module_menu_name = "导航",对吗?

但是如何获取关联数组中每个项目的 menu_name 呢?

就像是:

$menu_names = Array();
foreach($menus as $menu){
    $module_menu_names[] => ???['menu_name'];
}

...这就是我卡住的地方。我在那些问号的地方放什么?这甚至是构建这个数组的正确方法吗?

4

3 回答 3

3
$menu_names = Array();
foreach($menus as $menu){
    $menu_names[] = $menu['menu_name'];
}

像这样?

在您的 foreach 中, $menu 返回第二级数组。要访问“menu_name”,只需获取第二级数组的值并将其放入您的 $menu_names 数组中。

注意:我将您的 $module_menu_names 数组更改为 $menu_names,因为这似乎就是您想要做的。如果没有,只需将 foreach 循环中的 $menu_names 更改为 $module_menu_names。

于 2012-05-15T14:00:35.113 回答
0
$menu_names = Array();
foreach($menus as $menu){
    $menu_names[] = $menu['menu_name'];
}
于 2012-05-15T14:02:12.757 回答
0

你需要这个。

$array = array();
foreach($menus as $menu) {
    $array['nav']['menu_name'][] = $menu['menu_name'];
}

因为您的数组中会有多个菜单,您可以像这样调用菜单

//this will return the first menu in an array
$module_menu_name = $array['nav']['menu_name'][0];

更改数字索引号,您可以从数组中获取所需的菜单。

于 2012-05-15T14:02:17.173 回答