如何使用值的变量创建php键控数组

如何使用值的变量创建php键控数组,php,arrays,drupal,variables,Php,Arrays,Drupal,Variables,我正在使用drupal创建一些提交给第三方的自定义表单,并尝试将表单结果捆绑起来(其中一些表单结果应用了一些转换函数)发送给表单接收者 我已经在简单表单上使用了Drupal的Drupal_http_请求函数,它运行得很好,但是现在我的一些结果为var提供了值,我不知道如何创建一个键控数组来继续传递var的值 我知道,当我直接向我的第三方发送表单时,他们会收到正确的结果,但是我尝试将结果发送给他们,但会重定向到我自己网站中的某个页面,所以我知道我的表单至少可以正常工作-这只是使用尝试编码的功能,所

我正在使用drupal创建一些提交给第三方的自定义表单,并尝试将表单结果捆绑起来(其中一些表单结果应用了一些转换函数)发送给表单接收者

我已经在简单表单上使用了Drupal的Drupal_http_请求函数,它运行得很好,但是现在我的一些结果为var提供了值,我不知道如何创建一个键控数组来继续传递var的值

我知道,当我直接向我的第三方发送表单时,他们会收到正确的结果,但是我尝试将结果发送给他们,但会重定向到我自己网站中的某个页面,所以我知道我的表单至少可以正常工作-这只是使用尝试编码的功能,所以我可以控制重定向,但无法正常工作。 但我甚至不知道键控数组是否可以将变量作为其值,或者是否是语法问题

这是我的代码:

function formshare_nameform_submit($form_id, &$form_state) {

// Lookup share matrix return value
$shareMatrixValue = setShareMatrixValue($form_state['values']['image_id']);
$langResultsCode = setLangForShare($langCode);
$gender = setGenderForShare($form_state['values']['gender']);
$first_name = $form_state['values']['first_name'];
$last_name = $form_state['values']['last_name'];
$email = $form_state['values']['email'];
$email_friend1 = $form_state['values']['email_friend1'];
$email_friend2 = $form_state['values']['email_friend2'];
$email_friend3 = $form_state['values']['email_friend3'];
$message = $form_state['values']['massage'];
$optin = $form_state['values']['optin'];    
$category = $form_state['values']['category'];  
$image_id = $shareMatrixValue;
$id_langue = $form_state['values']['id_langue'];

// Make an array of values to pass to 3rd party.
  $pass_these = array();
  $pass_these['shareMatrixValue'] = $shareMatrixValue;
  $pass_these['langResultsCode'] = $langResultsCode;
  $pass_these['gender'] = $gender;
  $pass_these['first_name'] = $first_name;
  $pass_these['last_name'] = $last_name;
  $pass_these['email'] = $email;
  $pass_these['email_friend1'] = $email_friend1;
  $pass_these['email_friend2'] = $email_friend2;
  $pass_these['email_friend3'] = $email_friend3;
  $pass_these['message'] = $message;
  $pass_these['optin'] = $optin;
  $pass_these['category'] = $category;
  $pass_these['image_id'] = $image_id;
  $pass_these['id_langue'] = $id_langue;


// Post the data to 3rd party.
  $url = 'http://mythirdpartysite.com';
  $headers = array('Content-Type' => 'application/x-www-form-urlencoded');
  $data = drupal_query_string_encode($pass_these);
  drupal_http_request($url, $headers, 'POST', $data);
}

您可以使用&$var通过引用存储变量,或者只需将变量的名称存储在数组中并使用$$array['key'];获取$var值


最好的方法是创建一个stdClass对象并将变量存储为atributes,它像一个关联数组一样工作,但更干净

我已经尝试过使用这样的ref变量:$pass_this['gender'=&$gender;但它不起作用。我知道,因为我应该收到电子邮件回复。我不擅长PHP,你能给我一个如何设置stdClass对象的例子吗?$object=newstdclass$对象->性别=&$SEXT;但是你可以使用$pass_这些['gender']=$gender;另一方面,不管怎样,只要获取值,不确定为什么需要变量的引用。