PHP - 使用变量作为$ _GET ['']语句的索引

时间:2014-03-25 16:19:29

标签: php arrays variables get

我有一个数组, anArray ,我循环使用,如下所示:

foreach ($anArray as $key) {

    echo $_GET[$key];

}

我收到很多错误:

  

未定义的索引:$ key

这是真的,但我不知道如何让我的PHP识别$ key是一个变量,而不仅仅是一个字符串。

如果我打印出$ _GET $ key =>的列表$ value对和$ anArray列表,它们都包含至少一些相同的值。

谁能告诉我哪里出错?

非常感谢。

2 个答案:

答案 0 :(得分:1)

它已经将$ key识别为var,您的语法是正确的,您可以通过这种方式消除错误:

首先检查$ _GET数组是否包含$ key:

if array_key_exists($key, $_GET) {
    echo $_GET[$key];
}

答案 1 :(得分:0)

错误告诉您$ anArray中的值不是$ _GET中的索引。

例如,

http://someserver/somepage.php?var1=this&var2=that

会产生$ _GET,如:

array(
  'var1' => 'this',
  'var2' => 'that'
)

所以,如果$ anArray就像:

array('var1','var2','var3');

你的循环适用于 var1 var2 ,但当它到达 var3 时,它会发出 undefined index < / em>错误。

如果你不知道$ anArray中的所有元素是否都存在于$ _GET中,并且你只想抑制错误通知,通常的方法是将执行块包装在isset()中;包装器:

foreach ($anArray as $key) {
  if (isset($_GET[$key])) {
    echo $_GET[$key];
  }
}

或者使用@HappyMary建议的array_key_exists()。