Php 将字符串分解为foreach
我有以下GET参数: 数据=项目123&数据=项目124&数据=项目125&数据=项目126&数据=项目129&数据=项目127Php 将字符串分解为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&
我想知道是否有人知道一种快速的方法,可以将每个值输入到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
一样返回最后一个值,因为它们都有相同的名称。你是对的,我在写下答案后注意到这个问题:)