希望这是一个简单的答案或以其他方式可行。我想使用parse_str将我的查询字符串值存储在数组中。
$querystring = "value1=SKIP&value2=SKIP&value3=GET&value4=GET";
parse_str($querystring, $fields);
按名称访问数据的工作正常:
echo $fields['value3'];
...但是通过索引访问:
echo $ fields [2];
我想通过索引而不是名称访问的原因是因为在第二个数组值之后,其余的查询字符串参数将被动态生成。换句话说,对于我正在进行的处理 - 我希望获得第二个之后的所有参数。为此,我将使用一个简单的FOR循环,从数组中的第3个值开始到 sizeof(myArray);。
我有什么想法可以做到这一点?
答案 0 :(得分:5)
然后你必须生成一个索引数组。例如,你可以使用:
$indexed = array_values($fields);
print $indexed[2]; // eqivalent to $fields["value3"];
请注意,索引从0开始。
如果需要,还可以将命名数组与索引版本结合使用:
$fields = array_merge($fields, array_values($fields));
$fields[2] == $fields["value3"];
答案 1 :(得分:0)
只需将字符串与整数连接:
echo $fields["value" . $myInteger + 1];
其中myInteger
是你的值(for循环等)。您需要添加1,因为您的字符串是从一开始的。
示例:
for ($i = 2; $i < sizeof($myArray); $i++)
{
echo $fields["value" . $i + 1];
}
答案 2 :(得分:0)
$i = 0;
foreach ($fields as $key => $value) {
$fields[$i] = $value; //or just put your code here, and use $i
$i++;
}
for ($j = 2; $j < $i; $j++) {
//do something with $fields[$j]
}
答案 3 :(得分:0)
下面:
$querystring = "value1=SKIP&value2=SKIP&value3=GET&value4=GET";
parse_str($querystring, $fields);
$arr = array_slice($fields, 2, count($fields), true);
foreach($arr as $key=>$value) {
echo $key . "=>" . $value;
}