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