簡體   English   中英

構建數組時獲取鍵的值

[英]Get value of key when building array

我有一個看起來像這樣的數組:

$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']的值放入該值中。

無論如何,我可以引用我當前正在構建的數組中的鍵的值嗎?

你不能在它存在之前引用它。 為臨時變量賦值,然后在兩個地方都使用它。

$kaType = 'BBQ';
$widgets = array(
'ka' => array(
    'name'       => 'Kool-Aid',
    'active'     => true,
    'priority'   => 10,
    'primacy'    => 30,
    'controller' => 'KoolAid'.$kaType.'Widget',
    'settings'   => array(
        'ka_type'   => $kaType,
    ),
),
);

不,但您可以在 controller之前分配設置 => ka_type => BBQ?

好吧,如果您不想先將值保存到變量中,那么您可以這樣做。

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

或者,如果不僅僅是 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';
}

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM