我有一个如下所示的数组:
$widgets = array(
'ka' => array(
'name' => 'Kool-Aid',
'active' => true,
'priority' => 10,
'primacy' => 30,
'controller' => 'KoolAid'.$widgets['ka']['settings']['ka_type'].'Widget',
'settings' => array(
'ka_type' => 'BBQ',
),
),
);
如果你注意到行'控制器',我想要设置 $ widgets ['ka'] ['settings'] ['ka_type'] 的值进入价值。
无论如何,我可以在我正在构建的数组中引用键的值吗?
答案 0 :(得分:1)
您不能在值存在之前引用它。为临时变量赋值,然后在两个地方使用它。
$kaType = 'BBQ';
$widgets = array(
'ka' => array(
'name' => 'Kool-Aid',
'active' => true,
'priority' => 10,
'primacy' => 30,
'controller' => 'KoolAid'.$kaType.'Widget',
'settings' => array(
'ka_type' => $kaType,
),
),
);
答案 1 :(得分:0)
不,但您可以分配设置=> ka_type =>烧烤之前控制器?
答案 2 :(得分:0)
如果你不首先将值保存到变量那么你就可以做到这一点。
在两个步骤上保存数组。
$widgets = array(
'ka' => array(
'name' => 'Kool-Aid',
'active' => true,
'priority' => 10,
'primacy' => 30,
'controller' => '',
'settings' => array(
'ka_type' => 'BBQ',
),
),
);
$widgets['ka']['controller'] = $widgets['ka']['settings']['ka_type'].'Widget';
或者,如果不仅仅是Ka,你可以像
一样循环$widgets = array(
'ka' => array(
'name' => 'Kool-Aid',
'active' => true,
'priority' => 10,
'primacy' => 30,
'controller' => '',
'settings' => array(
'ka_type' => 'BBQ',
),
),
);
Foreach($widgets as $name=>$val){
$widget[$wid]['controller'] = $val['settings']['ka_type'].'Widget';
}
希望有所帮助