在数组循环中将变量用作键的一部分-PHP

在数组循环中将变量用作键的一部分-PHP,php,arrays,Php,Arrays,我有一个循环并收集数据的数组,但是我尝试在另一个数组中重用该变量作为键,当我回显变量时,它是一个字符串,但是当我在变量中使用它时,它显示为null 以$value等于'about'为例 顺序布局阵列输出 $bp\u主题\u选项数组变量 输出不正确-$contents\u show为空 正确的输出-$contents_show为“是” $value返回值 在另一个数组中使用变量作为键是否存在问题?如果我手动使用“about”,它会成功地获取变量 就我而言,它工作正常 $order_layout =

我有一个循环并收集数据的数组,但是我尝试在另一个数组中重用该变量作为键,当我回显变量时,它是一个字符串,但是当我在变量中使用它时,它显示为null

以$value等于'about'为例

顺序布局阵列输出

$bp\u主题\u选项数组变量

输出不正确-$contents\u show为空

正确的输出-$contents_show为“是”

$value返回值


在另一个数组中使用变量作为键是否存在问题?如果我手动使用“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"