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
    )
)

...など。

メニュー名のリストのみを含む新しい配列を作成する必要があります。たとえば、Navメニューの名前だけを取得する場合は、

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

そして今$module_menu_name= "Navigation"、そうですか?

しかし、連想配列の各アイテムの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は第2レベルの配列を返します。'menu_name'にアクセスするには、第2レベルの配列の値を取得し、それを$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 に答える