14

我正在尝试使用 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 在别处定义,所以这不是问题。

4

3 回答 3

24

那是无效的语法。您必须首先构建数组的“父”部分。然后使用 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,
    );
}
于 2013-01-21T19:58:14.710 回答
1

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

试试这个:

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

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

于 2013-01-21T19:56:41.490 回答
1

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

于 2013-01-21T19:58:45.290 回答