2011-06-08 124 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'; 
} 

希望它可以幫助