【问题标题】:Only last value returned in an associative array关联数组中仅返回最后一个值
【发布时间】:2013-11-02 02:23:39
【问题描述】:

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

 $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;
}

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

【问题讨论】:

  • 请缩进你的代码!它不可读!

标签: php wordpress variables multidimensional-array foreach


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 这正是我需要做出的改变,它奏效了。
    【解决方案3】:

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

    这样使用:

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

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 2013-05-17
      • 2016-05-23
      • 1970-01-01
      • 2014-11-27
      • 2011-05-06
      • 1970-01-01
      • 2021-08-07
      • 2017-02-09
      相关资源
      最近更新 更多