怎么http_builed_query这样的字符串?

时间:2017-11-22 14:23:52

标签: php url

我想得到这样的字符串:

'campaigns?fields=campaigns.id,campaigns.settings.title'

我试着这样:

$param = [
        'campaigns',
        'fields' => [
            'campaigns.id',
            'campaigns.settings.title'
        ]
    ];

但是得到这个:

0=campaigns&fields[0]=campaigns.id&fields[1]=campaigns.settings.title
enter code here

如何编辑?

3 个答案:

答案 0 :(得分:0)

您可以尝试使用implode()

$param = [
        'campaigns',
        'fields' => [
            'campaigns.id',
            'campaigns.settings.title'
        ]
    ];

echo $param[0] . '?' . 'fields=' . implode(',', $param['fields']);
// campaigns?fields=campaigns.id,campaigns.settings.title

答案 1 :(得分:0)

您可以使用爆炸(' & '),因为您目前正在路上行动:

<pre>
<?php
$arr=array();
$str="0=campaigns&fields[0]=campaigns.id&fields[1]=campaigns.settings.title";
$arr=explode("&",$str);
print_r($arr);
?>
 </pre>

答案 2 :(得分:0)

我强烈关注,你真的想拥有这样的http字符串:

campaigns?fields=campaigns.id,campaigns.settings.title

表示:使用包含字符串campaigns的单个http参数fields转到网址campaigns.id,campaigns.settings.title

我认为你应该选择其中一种可能的变体:

campaigns?fields[]=campaigns.id&fields[]=campaigns.settings.title

所以你发送了有两个值的字段数组 或者:

campaigns?campaigns[id]=xxxx&campaigns[settings][title]=yyyyy

将http参数分割为适当的对象

http_build_query仅构建查询字符串的一部分,即初始字符串中的fields=campaigns.id,campaigns.settings.title。你不能用http_build_query获得完整的字符串,但你可以使用这样的东西:

'campaigns?' . http_build_query(fields: 'campaigns.id,campaigns.settings.title')

获取您想要的确切字符串