Php 关联数组中仅返回最后一个值
以下是我的代码,我正在创建一个数组,以便最终产品将返回以下内容:Php 关联数组中仅返回最后一个值,php,wordpress,variables,multidimensional-array,foreach,Php,Wordpress,Variables,Multidimensional Array,Foreach,以下是我的代码,我正在创建一个数组,以便最终产品将返回以下内容: $values=user_email => displayname user_email => displayname user_email => displayname 我正在使用下面列出的阵列: array [0] => std.class Object( [id] = 12 [user_login]
$values=user_email => displayname
user_email => displayname
user_email => displayname
我正在使用下面列出的阵列:
array [0] => std.class Object( [id] = 12
[user_login] = bob
)
[1] => std.class Object( [id] = 15
[user_login] = frank
)
当我运行下面列出的代码时,它只在最后一个值上运行。我尝试在变量名处使用“.”,但它似乎只是将其添加到变量中,而不是添加到我需要的数组中
我希望做的是:
- 运行wp_user_查询以返回组中的所有人员
- 得到结果
- 得到结果后,使用每个用户的[id]确定他们的$displayname和$email
- 然后,它们被发送到一个新的数组中,使用电子邮件作为密钥
function show_user_dropdown($values, $field){
if( $field->id == 155 ){
$wp_user_search = new WP_User_Query( array( 'role' => 'Hrrepresentative', 'fields' => array('user_login', 'ID') ) );
$authors = $wp_user_search->get_results();
$value['options']=array();
foreach ($authors as $a) {
$displayname=get_the_author_meta('display_name', $a->ID);
$emailname=get_the_author_meta('user_email', $a->ID);
$validation=array($emailname=>$displayname);
$values['options']=$validation;
$values['use_key'] = true;
}
}
return $values;
}
我需要怎么做才能解决这个问题?您既有“值”又有“值”。我认为数组表示法并不像你想象的那样有效。我认为你最好做这样的事情:
$values[$id]['option'] = $validation;
编辑:要详细说明,$values只有1个值(最后一次运行foreach循环)。您还将覆盖$values['option']中的上一个值。您需要使用带有索引的多维数组。您既有“值”又有“值”。我认为数组表示法并不像你想象的那样有效。我认为你最好做这样的事情:
$values[$id]['option'] = $validation;
编辑:要详细说明,$values只有1个值(最后一次运行foreach循环)。您还将覆盖$values['option']中的上一个值。您需要使用带有索引的多维数组。您正在重新分配
$values['options']=$validation代码>在循环中
这样使用它:
$values['options'][]=$validation;
您正在重新分配$values['options']=$validation代码>在循环中
这样使用它:
$values['options'][]=$validation;
要获取显示的数组结构,请尝试:
$values['options'][$emailname] = $displayname;
要获取显示的数组结构,请尝试:
$values['options'][$emailname] = $displayname;
请缩进你的代码!这是不可读的!请缩进你的代码!这是不可读的!这正是我需要做的改变,它起作用了。这正是我需要做的改变,它起作用了。