Я не уверен, возможно ли это или нет, но я пытаюсь передать случайную переменную, чтобы заполнить массив.
Вот код обычно: -
//Loading all data of user in an array variable.
$user_fields = user_load($user->uid);
// Updated one array variable in this array.
$user_fields -> field_module_3_status['und'][0]['value'] = "Started";
// Saved back the updated user data
user_save($user_fields);
Но я хочу динамически field_module_3_status
переменную field_module_3_status
через переменную.
Следовательно, предположим, что у меня есть $user_field_name = field_module_3_status
.
Поэтому я попытался сделать так:
$user_fields = user_load($user->uid);
$this_users_status = $user_fields -> $user_field_name;
$this_users_status['und'][0]['value'] = "Started";
user_save($user_fields);
К сожалению, это не работает.
Любая идея, как я могу это достичь?
Вы делаете копию массива, когда выполняете присваивание $this_users_status
. Вам нужно назначить массив в свойстве объекта.
$user_fields->{$user_field_name}['und'][0]['value'] = "Started";
Или вы можете использовать ссылку:
$this_users_status =& $user_fields->$user_field_name;
$val; $ref =& $val; $val = 0; /*ref is 0 now*/ $val = 't'; /*ref is 't' now*/
это может помочь вам на вашем пути. РЕДАКТИРОВАТЬ: перевернутый & =