数组内的 Foreach 循环

Foreach loop inside array

提问人:user319940 提问时间:1/22/2013 最后编辑:user319940 更新时间:7/15/2019 访问量:31712

问:

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

PHP 数组 foreach

评论


答:

2赞 ste 1/22/2013 #1

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

试试这个:

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

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

评论

0赞 user319940 1/22/2013
使用这种方法,我将如何使$clients成为数组的数组?对不起,如果这听起来有点密集!
0赞 ste 1/22/2013
首先定义$clients []$clients = array(array('oneval', 'two'), array('another', 'another'));[/] 然后只需将 $clients 包含在主数组中codecode
0赞 user319940 1/22/2013
但我需要通过使用 foreach 循环来获取值,因为客户端用于 wordpress 查询:$clients = get_users();
0赞 ste 1/22/2013
然后确保你已经用你期望的结构填充了一个数组,并将其分配给$clients - 或者尝试 Marc 的答案;相同的方法,不同的顺序
0赞 user319940 1/22/2013
不太确定你的意思,不幸的是,Marc 的代码在我的情况下不起作用(见评论),谢谢你的帮助。
26赞 Marc B 1/22/2013 #2

这是无效的语法。您必须首先构建数组的“父”部分。然后添加带有 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,
    );
}

评论

0赞 user319940 1/22/2013
不幸的是,这似乎对我不起作用,因为数组 foo 本身位于数组本身中,它给出错误解析错误:语法错误,意外T_FOREACH,期望“)”
0赞 dhaupin 2/11/2016
如果“选项”有可能被填满,则无需将其设置为“选项”。这可能会使一些解析器看到空值(即架构 json-ld)。array()
0赞 Tariq Ahmed 7/2/2020
感谢您简单明了的解释方式。
1赞 Cody Covey 1/22/2013 #3

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