繁体   English   中英

数组内的 Foreach 循环

[英]Foreach loop inside array

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

那是无效的语法。 您必须先构建数组的“父”部分。 然后使用 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,
    );
}

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

尝试这个:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM