Внутренний массив forach

Я пытаюсь создать массив внутри массива, используя цикл 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 определяется в другом месте, так что это не проблема.

Это недопустимый синтаксис. Сначала вам нужно будет создать «родительские» части массива. THEN добавьте в материал подматрицы с помощью цикла 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 ) 

Если вам нужно изменить структуру данных для «параметров», сделайте это до определения первичного массива.

Вы не можете использовать foreach в определении массива. Тем не менее, вы можете поместить переменную $clients в массив или вы можете зайти за пределы массива, чтобы построить массив, который будет вставлен в ключ options