Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组内的Foreach循环_Php_Arrays_Foreach - Fatal编程技术网

Php 数组内的Foreach循环

Php 数组内的Foreach循环,php,arrays,foreach,Php,Arrays,Foreach,我正在尝试使用for循环在数组中创建一个数组-以下是我的代码: array( 'label' => 'Assign to user', 'desc' => 'Choose a user', 'id' => $prefix.'client', 'type' => 'radio' 'options' => array( foreach ($clients as $user) { $use

我正在尝试使用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_常量\u封装的\u字符串, 应为“')”

对于线路:

'options' => array( 

我有点不知道出了什么问题——非常感谢您的帮助$客户端是在别处定义的,所以这不是问题。

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

试试这个:

array(
    'label' => 'Assign to user',
    'desc' => 'Choose a user',
    'id' => $prefix.'client',
    'type' => 'radio'
    'options' => $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。但是,您可以将
$clients
变量放入数组本身,也可以在数组外部foreach构建要插入
选项

的数组。使用这种方法,我将如何使$clients成为数组?如果这听起来有点晦涩,对不起!首先定义$clients[
code
]$clients=array(array('oneval','two')、array('other','other'));[/
code
]然后只在主数组中包含$clients,但我需要使用foreach循环获取值,因为clients用于wordpress查询:$clients=get_users();然后确保你已经用你期望的结构填充了一个数组,并将其分配给$clients——或者试试Marc的答案;相同的方法,不同的顺序不太清楚你的意思,不幸的是,Marc的代码在我的情况下不起作用(请参阅注释),谢谢你的帮助。不幸的是,这似乎对我不起作用,因为数组foo位于一个数组中,这会导致错误解析错误:语法错误,意外的t_FOREACH,预期“)”如果有可能无法填充,则不需要将“选项”设置为
array()
。这可能会使一些解析器无法看到空值(即模式json ld)。