在数组循环中将变量用作键的一部分-PHP
我有一个循环并收集数据的数组,但是我尝试在另一个数组中重用该变量作为键,当我回显变量时,它是一个字符串,但是当我在变量中使用它时,它显示为null 以$value等于'about'为例 顺序布局阵列输出 $bp\u主题\u选项数组变量 输出不正确-$contents\u show为空 正确的输出-$contents_show为“是” $value返回值在数组循环中将变量用作键的一部分-PHP,php,arrays,Php,Arrays,我有一个循环并收集数据的数组,但是我尝试在另一个数组中重用该变量作为键,当我回显变量时,它是一个字符串,但是当我在变量中使用它时,它显示为null 以$value等于'about'为例 顺序布局阵列输出 $bp\u主题\u选项数组变量 输出不正确-$contents\u show为空 正确的输出-$contents_show为“是” $value返回值 在另一个数组中使用变量作为键是否存在问题?如果我手动使用“about”,它会成功地获取变量 就我而言,它工作正常 $order_layout =
在另一个数组中使用变量作为键是否存在问题?如果我手动使用“about”,它会成功地获取变量 就我而言,它工作正常
$order_layout = array(0=>'benefits',1=>'services',2=>'about',3=>'team',4=>'success_stories',5=>'cta_banner',6=>'social',7=>'',8=>'',9=>'',10=>'');
$bp_theme_options['web_sec']['about']['show_row'] = "yes";
$bp_theme_options['web_sec']['affiliates']['show_row'] = "yes";
$bp_theme_options['web_sec']['benefits']['show_row'] = "yes";
$bp_theme_options['web_sec']['blog']['show_row'] = "yes";
$bp_theme_options['web_sec']['services']['show_row'] = "yes";
$bp_theme_options['web_sec']['social']['show_row'] = "yes";
$bp_theme_options['web_sec']['success_stories']['show_row'] = "yes";
$bp_theme_options['web_sec']['team']['show_row'] = "yes";
$bp_theme_options['web_sec']['cta_banner']['show_row'] = "yes";
foreach ( $order_layout as $key => $value ) {
if ($value) {
$contents_show = $bp_theme_options['web_sec'][$value]['show_row'];
var_dump($contents_show . "<br>"); //should return 'yes' and returns 'yes'
}
}
输出:
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string(13) "yes--benefits"
string(13) "yes--services"
string(10) "yes--about"
string(9) "yes--team"
string(20) "yes--success_stories"
string(15) "yes--cta_banner"
string(11) "yes--social"
您在$order_布局和$bp_主题_选项中有不同的名称,请检查成功故事和成功故事。如果存储实际循环值的引用,那么在$order\U layout中的“about”名称中可能会有一个额外的空格?
foreach ( $order_layout as $key => $value ) {
if($value){
var_dump($value) //returns 'about' string
$value_ref = &$value;
$contents_show = $bp_theme_options['web_sec'][$value_ref]['show_row'];
echo $contents_show; //should return 'yes' returns NULL
}
}
在我的情况下,它工作得很好
<?php
$bp_theme_options['web_sec']['about']['show_row'] = "yes";
$bp_theme_options['web_sec']['affiliates']['show_row'] = "yes";
$bp_theme_options['web_sec']['benefits']['show_row'] = "yes";
$bp_theme_options['web_sec']['blog']['show_row'] = "yes";
$bp_theme_options['web_sec']['services']['show_row'] = "yes";
$bp_theme_options['web_sec']['social']['show_row'] = "yes";
$bp_theme_options['web_sec']['success_stories']['show_row'] = "yes";
$bp_theme_options['web_sec']['team']['show_row'] = "yes";
$bp_theme_options['web_sec']['cta_banner']['show_row'] = "yes";
$order_layout = [ 1 =>'benefits', 2 =>'services', 3 =>'about', 4 =>'team', 5 =>'success_stories', 6 =>'cta_banner', 7 =>'social'];
foreach ( $order_layout as $key => $value ) {
if($value){
if(isset($bp_theme_options['web_sec'][$value]['show_row'])){
$contents_show = $bp_theme_options['web_sec'][$value]['show_row'];
if(isset($contents_show)){
var_dump($contents_show.'--'.$value);
}
}
}
}
?>
如果您使用var_dump$bp_theme_选项['web_sec'][$value];,您会看到什么?无法复制-能否添加数组$order_布局和$bp_主题_选项?必须有其他错误导致您的问题。string8 about-现在,拼写“about”时通常有八个字母吗?不然后你发现你的$order_布局数组包含的不仅仅是“about”,在开头或结尾可能有一些不可见的字符……因此这与另一个数组中现有的键about不匹配。
$order_layout = array(0=>'benefits',1=>'services',2=>'about',3=>'team',4=>'success_stories',5=>'cta_banner',6=>'social',7=>'',8=>'',9=>'',10=>'');
$bp_theme_options['web_sec']['about']['show_row'] = "yes";
$bp_theme_options['web_sec']['affiliates']['show_row'] = "yes";
$bp_theme_options['web_sec']['benefits']['show_row'] = "yes";
$bp_theme_options['web_sec']['blog']['show_row'] = "yes";
$bp_theme_options['web_sec']['services']['show_row'] = "yes";
$bp_theme_options['web_sec']['social']['show_row'] = "yes";
$bp_theme_options['web_sec']['success_stories']['show_row'] = "yes";
$bp_theme_options['web_sec']['team']['show_row'] = "yes";
$bp_theme_options['web_sec']['cta_banner']['show_row'] = "yes";
foreach ( $order_layout as $key => $value ) {
if ($value) {
$contents_show = $bp_theme_options['web_sec'][$value]['show_row'];
var_dump($contents_show . "<br>"); //should return 'yes' and returns 'yes'
}
}
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
string 'yes<br>' (length=7)
foreach ( $order_layout as $key => $value ) {
if($value){
var_dump($value) //returns 'about' string
$value_ref = &$value;
$contents_show = $bp_theme_options['web_sec'][$value_ref]['show_row'];
echo $contents_show; //should return 'yes' returns NULL
}
}
<?php
$bp_theme_options['web_sec']['about']['show_row'] = "yes";
$bp_theme_options['web_sec']['affiliates']['show_row'] = "yes";
$bp_theme_options['web_sec']['benefits']['show_row'] = "yes";
$bp_theme_options['web_sec']['blog']['show_row'] = "yes";
$bp_theme_options['web_sec']['services']['show_row'] = "yes";
$bp_theme_options['web_sec']['social']['show_row'] = "yes";
$bp_theme_options['web_sec']['success_stories']['show_row'] = "yes";
$bp_theme_options['web_sec']['team']['show_row'] = "yes";
$bp_theme_options['web_sec']['cta_banner']['show_row'] = "yes";
$order_layout = [ 1 =>'benefits', 2 =>'services', 3 =>'about', 4 =>'team', 5 =>'success_stories', 6 =>'cta_banner', 7 =>'social'];
foreach ( $order_layout as $key => $value ) {
if($value){
if(isset($bp_theme_options['web_sec'][$value]['show_row'])){
$contents_show = $bp_theme_options['web_sec'][$value]['show_row'];
if(isset($contents_show)){
var_dump($contents_show.'--'.$value);
}
}
}
}
?>
string(13) "yes--benefits"
string(13) "yes--services"
string(10) "yes--about"
string(9) "yes--team"
string(20) "yes--success_stories"
string(15) "yes--cta_banner"
string(11) "yes--social"