PHP:使用另一个关联的多维数组的值构建数组

时间:2012-05-15 13:57:04

标签: php arrays multidimensional-array associative-array

我有一个数组,我们称之为$菜单,其中包含以下内容:

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'];
}

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

3 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

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

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

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