只有关联数组中返回的最后一个值

时间:2013-10-23 17:04:37

标签: 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] = 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;
}

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

3 个答案:

答案 0 :(得分:1)

你有'价值'和'价值'。我不认为数组符号是如何工作的。我认为你做这样的事情会更好:

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

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

答案 1 :(得分:0)

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

以这种方式使用:

$values['options'][]=$validation;  

答案 2 :(得分:0)

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

$values['options'][$emailname] = $displayname;