2011-06-08 93 views
0

时获得关键的价值我有一个数组,看起来像这样:构建阵列

$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', 
    ), 
), 
); 

如果您发现该行“控制器”上我想提出的$控件的值“KA '] ['settings'] ['ka_type']转化为值。

无论如何,我可以引用我目前正在构建的数组中的某个键的值?

回答

0

不,但您可以在控制器之前分配设置=> ka_type => BBQ

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, 
    ), 
), 
); 
+0

+1最好的办法。 – 2011-06-08 18:51:19

+0

对我来说最符合逻辑的一个。 ] – 2011-06-08 18:51:52

0

那么,如果你不wana保存价值变量首先,你可以做到这一点。

在2个步骤中保存数组。

$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'; 

或存在不仅仅是嘉多,U可以循环像

$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'; 
} 

希望它可以帮助