0

我在原型阶段。我在 page1.php 中有一个链接发送到下面的页面:

http://localhost/sayfa.php?rd_dil=turkish&rd_sayfa=yazilar&rd_yazar=ali_uysal&rd_baslik=kalem_ucu"

在此页面中,echo $_GET['rd_dil']有效并显示turkish,但 echo $_GET[0] 显示Notice : Undefined offset: 0

所以我想以数字方式(数字索引)使用 $_GET 吗?我怎样才能实现这个目标?我阅读了 php.net + 堆栈溢出并用谷歌搜索,但我无法解决我的问题。

4

4 回答 4

3

$_GET 是一个关联数组,可以循环遍历它:

foreach($_GET as $key=>$value) {
   ....
}

如果您只需要数值数组中的值,您可以使用:

$myData = array_values($_GET);
// here you have a numeric array containing the $_GET values
echo $myData[0];
于 2013-02-16T16:57:25.297 回答
2

由于$_GET是关联数组,因此您可以将值分配给新数组:

foreach($_GET as $key=>$val) {
   $_GET2[] = $val;
}

或者您可以array_values按照 axel.michel 的建议使用:

$_GET2 = array_values($_GET);
echo $_GET2[0];
于 2013-02-16T16:56:10.843 回答
0

你不能直接这样做。但是有一些解决方法:

$indexed = array_values($_GET);
$first = $indexed[0];

$keys = array_keys($_GET);
$first = $_GET[$keys[0]];

$first = current(array_slice(array('foo'), 0, 1)));
于 2013-02-16T16:59:25.613 回答
-1

是的,你不能。这就是它的工作原理。
只是没有这样的索引。

您不需要数字索引,但必须使用关联键。

您不应该将 $_GET 转换为枚举列表的原因有两个:

  • 不保证参数顺序。您必须使用字段名称而不是职位。
  • 这只是对CPU的无用浪费。你想从你的枚举数组中得到的一切,你都可以从原始的 $_GET 中得到。例如,用于foreach()迭代它。

如果您仍然不知道如何正确处理 $_GET - 问这个问题,您将得到正确的答案。

于 2013-02-16T16:55:06.910 回答