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; 

请缩进你的代码!这是不可读的!请缩进你的代码!这是不可读的!这正是我需要做的改变,它起作用了。这正是我需要做的改变,它起作用了。