Foreach循环内部数组

时间:2013-01-21 19:54:07

标签: php arrays foreach

我正在尝试使用for循环在数组中创建一个数组 - 这是我的代码:

    array(
    'label' => 'Assign to user',
    'desc' => 'Choose a user',
    'id' => $prefix.'client',
    'type' => 'radio'
    'options' => array( 
        foreach ($clients as $user) {
         $user->user_login => array (  
            'label' => $user->user_login,  
            'value' => $user->user_login,
            ), 
        }
        )
    )

不幸的是,这给了我一个

  

“解析错误:语法错误,意外T_CONSTANT_ENCAPSED_STRING,   期待')'“

对于这一行:

'options' => array( 

我对出了什么问题感到有点失落 - 非常感谢任何帮助。 $ clients在别处定义,所以这不是问题。

3 个答案:

答案 0 :(得分:17)

这是无效的语法。你必须首先构建数组的“父”部分。然后使用foreach循环添加子数组:

$foo = array(
    'label' => 'Assign to user',
    'desc' => 'Choose a user',
    'id' => $prefix.'client',
    'type' => 'radio',
    'options' => array()
);

foreach ($clients as $user) {
    $foo['options'][] = array (  
        'label' => $user->user_login,  
        'value' => $user->user_login,
    );
}

答案 1 :(得分:1)

您使用foreach访问数据,而不是定义它。

试试这个:

array(
    'label' => 'Assign to user',
    'desc' => 'Choose a user',
    'id' => $prefix.'client',
    'type' => 'radio'
    'options' => $clients
    )

如果您需要更改“选项”的数据结构,请在定义主数组之前执行此操作。

答案 2 :(得分:1)

您不能在数组的定义中使用foreach。但是,您可以将$clients变量放在数组本身中,也可以在数组外部预先构建要插入options键的数组