将字符串分解为foreach

时间:2014-02-17 16:20:44

标签: php foreach

我有以下GET参数: ?数据= prop_123&安培;数据= prop_124&安培;数据= prop_125&安培;数据= prop_126&安培;数据= prop_129&安培;数据= prop_127

我想知道是否有人知道如何快速获取每个价值的方法?谢谢!

3 个答案:

答案 0 :(得分:2)

这不起作用,因为所有参数都具有相同的名称,因此只会将值“prop_127”传递给您的脚本。您可以将其创建为数组,如下所示:

?data[]=prop_123&data[]=prop_124&data[]=prop_125&data[]=prop_126&data[]=prop_129&data[]=prop_127

然后你可以使用foreach()像这样循环遍历它们:

foreach ( $_GET['data'] as $data ) {
    // This loops once for each instance of data[] in your URL
}

如果您无法控制该网址,则必须使用$_SERVER['QUERY_STRING']手动阅读该网址,然后解析该网址以将值拉出。

答案 1 :(得分:2)

每个data都会覆盖$_GETparse_str中的上一个,所以这样的事情可能会这样:

$s = 'data=prop_123&data=prop_124&data=prop_125&data=prop_126&data=prop_129&data=prop_127';
$s = str_replace('=', '[]=', $s);
parse_str($s, $a);

foreach($a as $something) { }

如果您实际上是想将变量放入GET请求并且可以从$_GET获取,那么请在查询字符串中使用data[]形式,然后foreach覆盖$_GET {1}}。

答案 2 :(得分:0)

您可以使用PHP函数:parse_str

http://www.php.net/manual/en/function.parse-str.php