我有不同的数组名称,有几个名字=>里面的价值观。
在我的文件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循环或者只能使用名称来访问它?
答案 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'];
}