Php 将字符串分解为foreach

Php 将字符串分解为foreach,php,foreach,Php,Foreach,我有以下GET参数: 数据=项目123&数据=项目124&数据=项目125&数据=项目126&数据=项目129&数据=项目127 我想知道是否有人知道一种快速的方法,可以将每个值输入到foreach中?谢谢 您可以使用PHP函数:parse_str 您可以使用PHP函数:parse\u str 这不起作用,因为所有参数都具有相同的名称,因此只有值“prop_127”将被传递到脚本。您可以将其创建为数组,如下所示: ?data[]=prop_123&data[]=prop_124&

我有以下GET参数: 数据=项目123&数据=项目124&数据=项目125&数据=项目126&数据=项目129&数据=项目127


我想知道是否有人知道一种快速的方法,可以将每个值输入到foreach中?谢谢

您可以使用PHP函数:parse_str


您可以使用PHP函数:parse\u str


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

?data[]=prop_123&data[]=prop_124&data[]=prop_125&data[]=prop_126&data[]=prop_129&data[]=prop_127
foreach ( $_GET['data'] as $data ) {
    // This loops once for each instance of data[] in your URL
}
然后您可以使用
foreach()
像这样循环它们:

?data[]=prop_123&data[]=prop_124&data[]=prop_125&data[]=prop_126&data[]=prop_129&data[]=prop_127
foreach ( $_GET['data'] as $data ) {
    // This loops once for each instance of data[] in your URL
}

如果您无法控制URL,则必须使用
$\u SERVER['QUERY\u STRING']
手动读取URL,然后解析URL以提取值。

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

?data[]=prop_123&data[]=prop_124&data[]=prop_125&data[]=prop_126&data[]=prop_129&data[]=prop_127
foreach ( $_GET['data'] as $data ) {
    // This loops once for each instance of data[] in your URL
}
然后您可以使用
foreach()
像这样循环它们:

?data[]=prop_123&data[]=prop_124&data[]=prop_125&data[]=prop_126&data[]=prop_129&data[]=prop_127
foreach ( $_GET['data'] as $data ) {
    // This loops once for each instance of data[] in your URL
}

如果您无法控制URL,则必须使用
$\u服务器['QUERY\u STRING']
手动读取URL,然后通过解析来提取值。

每个
数据将覆盖
$\u GET
parse\u 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请求中,并且可以从
$\u GET
获取它们,那么请使用
data[]
在查询字符串中,然后在
$\u GET
上单击
foreach
每个
数据将覆盖前面的
$\u GET
或使用
parse\u 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请求中,并且可以从
$\u-GET
获取它们,那么使用查询字符串中的
data[]
格式,然后在
$\u-GET
上使用
foreach

parse\u-str()
只会像
$\u-GET
一样返回最后一个值,因为它们都有相同的名称。你是对的,我在写下答案后注意到了这个问题:)
parse_str()
只会像
$\u GET
一样返回最后一个值,因为它们都有相同的名称。你是对的,我在写下答案后注意到这个问题:)