1

这是我正在处理的创建数组的代码,因此最终产品将返回以下内容:

 $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_query 以返回组中的所有人员
  • 得到结果
  • 得到结果后,使用每个用户的 [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;
}

我需要做什么来解决这个问题?

4

3 回答 3

1

你既有“价值”,也有“价值”。我不认为数组符号的工作方式与您想象的一样。我认为你最好做这样的事情:

$values[$id]['option'] = $validation;

编辑:详细说明,您只有 1 个 $values 值(最后一次运行通过 foreach 循环)。无论如何,您也将覆盖 $values['option'] 中的先前值。您需要使用带索引的多维数组。

于 2013-10-23T17:12:28.943 回答
0

您正在$values['options']=$validation;循环中重新分配。

以这种方式使用它:

$values['options'][]=$validation;  
于 2013-10-23T17:13:44.040 回答
0

要获得您显示的数组结构,请尝试:

$values['options'][$emailname] = $displayname; 
于 2013-10-23T17:14:59.990 回答