将数组内容转换为HTTP查询


converting array contents to http query

我有一个像这样的数组。

$fields = array(
            'user[facebook_gender]' => urlencode("female"),
            'user[facebook_likes]' => array(1,2,3,4,5,6)
);
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
$fields_string=rtrim($fields_string, '&');

则得到

user[facebook_gender]=female&user[facebook_likes]=Array

它只显示"Array",但是我想显示Array的内容,

看看serialize函数

http://php.net/manual/en/function.serialize.php

例如:

foreach($fields as $key=>$value) {
  if (is_array($value)) $value = serialize($value);
  $fields_string .= $key.'='.$value.'&';
}
$fields_string=rtrim($fields_string, '&');

请注意,您必须在目标站点上使用unserialize(),才能再次使用该值。

实际上,http_build_query正是您所需要的。

对数组使用内爆:

foreach($fields as $key=>$value) {
    if(is_array($value))
    {
         $value = implode($value,",");
    }
    $fields_string .= $key.'='.$value.'&';
}
$fields_string=rtrim($fields_string, '&');