将数组内容转换为http查询

时间:2014-07-17 14:43:29

标签: php

我有这样的数组。

$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的内容,

3 个答案:

答案 0 :(得分:1)

查看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(),才能再次使用该值。

答案 1 :(得分:1)

实际上,http_build_query完全符合您的需要。

答案 2 :(得分:0)

在阵列上使用implode:

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