我正在使用wordpress中的一些插件,我有跟随数组和foreach循环的函数。
问题是,当$ locale_key变量在函数内部时,我总是得到$ locale_key变量与$ code相同。
请帮忙。
$languages = array(
array('af', 'af', 'Afrikaans'),
array('ar', 'ar', 'العربية', 'rtl'),
array('az', 'az', 'Azərbaycan'),
array('be', 'bel', 'Беларуская мова'),
array('bg', 'bg_BG', 'български'),
array('bs', 'bs_BA', 'Bosanski'),
array('ca', 'ca', 'Català'),
array('cs', 'cs_CZ', 'Čeština'));
$lang = $_SESSION['lang'];
foreach ($languages as $key => $value) {
$locale_key = $languages[$key][1];
$code = $languages[$key][0];
echo $locale_key; // Here i get for example "bs_BA"
add_shortcode( $code, function($atts, $content = null, $locale_key) {
global $lang;
echo $locale_key; // And then here i get "bs"
if ($lang == $locale_key) {
return $content;
}
});
}
答案 0 :(得分:1)
尝试:
$languages = array(
array('af', 'af', 'Afrikaans'),
array('ar', 'ar', 'العربية', 'rtl'),
array('az', 'az', 'Azərbaycan'),
array('be', 'bel', 'Беларуская мова'),
array('bg', 'bg_BG', 'български'),
array('bs', 'bs_BA', 'Bosanski'),
array('ca', 'ca', 'Català'),
array('cs', 'cs_CZ', 'Čeština'));
$lang = $_SESSION['lang'];
foreach ($languages as $key => $value) {
$locale_key = $value[1];
$code = $value[0];
add_shortcode( $code, function($atts, $content = null, $locale_key) {
global $lang;
if ($lang == $locale_key) {
return $content;
}
});
}
当你使用foreach($ array作为$ key => $ value)时,你可以通过$ key访问索引,并通过$ value访问相应的值(即使这也是一个数组)。
答案 1 :(得分:0)
<?php
$array = [
[1, 2, 3],
[3, 4, 5],
];
foreach ($array as list($a, $b, $c)) {
// $a enthält das erste Element des verschachtelten Arrays
// und $b enthält das zweite Element
echo "A: $a; B: $b; C: $c\n";
}
?>
尝试类似上面的内容,我相信你会找到解决方案。