在GET请求中获取具有相同名称的某些标识符的所有值

时间:2014-10-02 16:04:09

标签: php

我有这样的GET请求:

http://localhost/mysite/index.php?fg=1&fg=3&fg=16&fg=54&fg=64&s=1

我希望提取fg标识符的所有值。

所以结果应该是这样的:

array(
    [0]  => "1",
    [1] => "3",
    [2] => "16",
    [3] => "54,
    [4] => "64",
)

我尝试使用

$_GET['fg']

但$ _GET是变量的关联数组,因此它只包含一个由fg索引的元素。

那么我对如何获得fg个标识符的所有值有任何想法?

2 个答案:

答案 0 :(得分:2)

您需要将fg放入数组中。不要执行fg=1,请尝试:fg[]=1[]将其转换为数组。

http://localhost/mysite/index.php?fg[]=1&fg[]=3&fg[]=16&fg[]=54&fg[]=64&s=1

如果你这样做,那么$_GET['fg']就是一个数组。

答案 1 :(得分:2)

我建议您将URL /查询字符串更改为数组格式:

http://localhost/mysite/index.php?fg[]=1&fg[]=3&fg[]=16&fg[]=54&fg[]=64&s=1

这样,当您访问$_GET['fg']时,它就是一个数组,您可以这样访问它:

foreach ($_GET['fg'] as $fg) {
    // whatever
}

但是,如果你不采用这种方法,你可以通过explode()

进行一些魔术
$fg = array();
$parts = explode('&', $_SERVER['QUERY_STRING']);
foreach ($parts as $part) {
    list($key, $value) = explode('=', $part);
    if ($key == 'fg') {
        $fg[] = $value;
    }
}
// now $fg contains all individual values =]

Codepad Example第二个样本