将具有相同变量名的多个GET值组合成一个字符串

时间:2009-09-24 22:25:34

标签: php forms url

我有一个表单,可以在表单中发送大量GET ['var']。

我已经研究过如何将它设置为发送var [1] = data& var [2] = some& var [3] = thing等等

但是如何捕获每个变量并将其组合成一个字符串,用“,”分隔?

所以$ var = data,some,thing

更新

很抱歉我应该提到我已经有了破坏字符串的功能,但我不知道如何将所有Var [n]组合成一个$ var字符串。

希望这是有道理的!

解决!

谢谢Kazar,你的第一个答案实际上是一种享受!它要求我稍微改变我的剧本,但你的方式对我来说当然有意义

2 个答案:

答案 0 :(得分:7)

php implode函数将数组的内容连接在一起,使用字符串在它们之间插入,如下所示:

$var = implode(',', $_GET['var']);

另外一个注意事项,var的各种元素出现的顺序取决于查询字符串中的顺序,因此字符串可能看起来像'var2,var0,var1'。为了解决这个问题,您可能需要先进行密钥排序:

$var = $_GET['var'];
ksort($var);
$joinedString = implode(',', $var);

修改:根据问题编辑:

假设您的意思是再次创建查询字符串......?

$var = $_GET['var'];
$components = array();

foreach($var as $key=>$value) {

  $components[] = "var[" . $key . "]=" . $value;

}

$string = implode('&', $components);

可能有助于更详细的说明。

答案 1 :(得分:2)

只需使用连接数组内容的implode function

$var = implode (',', $var);