我有一个链接 mydomain.com/somefile.php?data=1&data=2&data=3。我想从 URL 中提取所有三个数据。我使用了以下代码:-
echo $_GET['data']." ".$_GET['data']." ".$_GET['data'];
代码的输出是:-
3 3 3
但我想要以下输出:-
1 2 3
如何进行?任何帮助将不胜感激 请...不要将此问题标记为重复...这与上一个不同,我无法更改 URL
我有一个链接 mydomain.com/somefile.php?data=1&data=2&data=3。我想从 URL 中提取所有三个数据。我使用了以下代码:-
echo $_GET['data']." ".$_GET['data']." ".$_GET['data'];
代码的输出是:-
3 3 3
但我想要以下输出:-
1 2 3
如何进行?任何帮助将不胜感激 请...不要将此问题标记为重复...这与上一个不同,我无法更改 URL
你不能那样做。如果您传递一个简单的参数,PHP 将只获取最后一个数据。但是,您可以使用以下语法通过 URL 传递数组:
?data[]=1&data[]=2&data[]=3
php:
var_dump($_GET['data']);
好吧,你不喜欢我的第一个答案,正如我通过这次投票所看到的那样......所以为了挽回我的信誉,我建议你这个解决方案,直接解析查询字符串:
<?php
$qstring = $_SERVER['QUERY_STRING']; // "data=1&data=2&data=3" here
$args = explode('&', $qstring);
$data = array();
for ($i = 0; $i < count($args); $i++) {
$param = explode('=', $args[$i]);
// If the key hasn't been seen yet, add a new array to data collection
if(empty($data[$param[0]]))
$data[$param[0]] = array();
// If there's a value given (we can have case like "data=1&test" for example)
if(!empty($param[1]))
$data[$param[0]][] = $param[1];
}
print_r($data);
/*
Array
(
[data] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
)
*/
然后你可以这样做:
<?php echo $data['data'][0].' '.$data['data'][1].' '.$data['data'][2]; ?>
希望这次能帮到你。