循环中的声明仅保留最后遇到的值[重复]

问题描述 投票:0回答:3

所有, 我有以下代码:

array(
        'id'        => 'tweet_slider',
        'name'      => __( 'Slide', TB_GETTEXT_DOMAIN ),
        'desc'      => __( 'Select the icon you\'d like shown before the Tweet.', TB_GETTEXT_DOMAIN ),
        'type'      => 'select',
        'std'       => 'twitter_display_option',
        'options'   => array(
            'single_twitter'    => __( 'Show Single Tweet', TB_GETTEXT_DOMAIN ),
            'slider_twitter'    => __( 'Show Twitter Slider', TB_GETTEXT_DOMAIN ),
        )
    ),

这工作正常,但我基本上想动态地将选项添加到我的选项数组中。我尝试做这样的事情:

$menus = wp_get_nav_menus();
foreach ( $menus as $menu ) :
    $menu_options =  'single_twitter'   => __( 'Show Single Tweet', TB_GETTEXT_DOMAIN ),
endforeach;
$menu_options = (array)$menu_options;

array(
        'id'        => 'menu_options',
        'name'      => __( 'Enter in your Menu Options', TB_GETTEXT_DOMAIN ),
        'desc'      => __( 'Enter in your menu options.', TB_GETTEXT_DOMAIN ),
        'std'       => '',
        'type'      => 'select',
        'options'   =>  $menu_options,
    ),

这给了我错误:

解析错误:语法错误,意外的T_DOUBLE_ARROW

有没有办法去做这样的事情?谢谢

php arrays loops
3个回答
4
投票

试试这个:

$menu_options = array();
foreach ( $menus as $menu ) :
    $menu_options[] = array( 'single_twitter' => __( 'Show Single Tweet', TB_GETTEXT_DOMAIN));
endforeach;

编辑:根据评论,您可以尝试以下操作:

foreach ( $menus as $menu ) :
    $menu_options[] = array( $menu->menu_id => __( $menu->name, TB_GETTEXT_DOMAIN));
endforeach;

1
投票

您收到语法错误,因为您不能在该位置使用

=>
符号。您可以使用以下方法将项目添加到数组中:

$menu_options['single_twitter'] = __( 'Show Single Tweet', TB_GETTEXT_DOMAIN );

或者一般来说:

$menu_options = array();
foreach ($menus as $menu) {
    $key = ...
    $value = ...
    $menu_options[$key] = $value;
}

其中

$key
$value
是使用
$menu
获得的。在主数组中,您可以编写:

'options' => $menu_options

0
投票

从头开始构建数组的方法是

$myArray = array(); 
$myArray['some_key'] = some_value ; 
$myArray['some_other_key'] = some_other_value ; 

尝试将其应用于 foreach 循环中的情况。

© www.soinside.com 2019 - 2024. All rights reserved.