php从密钥名称获取数组的值

时间:2014-08-03 13:11:42

标签: php arrays key-value

我有不同的数组名称,有几个名字=>里面的价值观。

在我的文件shortcode-config.php中:

$shortcodes['video_section'] = array(
    'no_preview' => true,
    'params' => 'xxx',
    'shortcode' => '[sc1][/sc1]',
    'popup_title' => __('Video Section', THEME_NAME),
    'shortcode_icon' => __('li_video')
);

$shortcodes['image_section'] = array(
    'no_preview' => true,
    'params' => 'yyy',
    'shortcode' => '[sc2][/sc2]',
    'popup_title' => __('Image Section', THEME_NAME),
    'shortcode_icon' => __('li_image')
);

我想获得shortcode_icon的价值。我知道数组的名称,我只想要一个所需的aray名称的值。

例如,我尝试了这个没有成功:

define( 'TINYMCE_DIR', plugin_dir_path( __FILE__ ) .'tinymce' );
require_once( TINYMCE_DIR . '/shortcodes-config.php' );

$name = 'video_section';
$icon = $shortcodes[$name]['shortcode_icon'];

我是否需要使用foreach循环或者只能使用名称来访问它?

2 个答案:

答案 0 :(得分:0)

您可以使用这两种方法访问它。如果您现在不是确切的名称和位置,或者数组是动态的,那么首先使用带循环的。第二个,如果一切都是静态的,你知道它的确切名称和维度。

所以它适用于

$name = 'video_section';
$icon = $shortcodes[$name]['shortcode_icon'];

答案 1 :(得分:0)

您可以通过命名索引或循环访问它。见下面的例子:

$name = 'video_section';
$icon = $shortcodes[$name]['shortcode_icon'];

var_dump($icon)

返回string(8) "li_video"

由于$ shortcodes无论如何都是一个数组,你可以使用循环访问那里的任何元素,例如video_section数组和image_selection数组

foreach ($shortcodes as $code) {
    if ($code == "video_section") {
        //handle video section
    }
    if ($code == "image_section") {
        //handle video section
    }
}

您也似乎在$ name变量声明的末尾缺少一个半冒号。

启用错误可能会有所帮助:

error_reporting(E_ALL); ini_set('display_errors', 'On');

或者写一个传递$ name参数的函数,只需确保该数组可以在范围外的函数中访问:

$return = getShortcode('video_section');

function getShortcode($name)
{
    return $shortcodes[$name]['shortcode_icon'];
}