我有一个数组的索引,anArray,通过我循环,像这样:
foreach ($anArray as $key) {
echo $_GET[$key];
}
我得到许多错误说法:
未定义指数:$关键
这是事实,但我不知道如何让我的PHP认识到$关键是一个变量,而不是只是一个字符串。
如果我打印出$ _GET $ key => $ value对的列表和$ anArray的列表,它们都包含至少一些相同的值。
任何人都可以告诉我哪里出错了吗?
非常感谢。
我有一个数组的索引,anArray,通过我循环,像这样:
foreach ($anArray as $key) {
echo $_GET[$key];
}
我得到许多错误说法:
未定义指数:$关键
这是事实,但我不知道如何让我的PHP认识到$关键是一个变量,而不是只是一个字符串。
如果我打印出$ _GET $ key => $ value对的列表和$ anArray的列表,它们都包含至少一些相同的值。
任何人都可以告诉我哪里出错了吗?
非常感谢。
它已经确实承认$键作为一个变种,你的语法正确,你可以消除错误是这样的:
检查$ _GET数组的第一个这样它$键:
if array_key_exists($key, $_GET) {
echo $_GET[$key];
}
错误告诉你,$ anArray中的值不在$ _GET中作为索引存在。
例如,
http://someserver/somepage.php?var1=this&var2=that
将导致$ _GET一样:
array(
'var1' => 'this',
'var2' => 'that'
)
所以,如果$ anArray是这样的:
array('var1','var2','var3');
你的循环将工作的优良var1 and var2 ,但是当它到达var3它会发出未定义索引错误。如果您不知道$ anArray中的所有元素是否将存在于$ _GET中,并且您只是希望抑制错误通知,那么通常的方法是将您的执行块封装在isset()中。包装:
foreach ($anArray as $key) {
if (isset($_GET[$key])) {
echo $_GET[$key];
}
}
或者使用@HappyMary建议的array_key_exists()。
这应该是原样。 '$ arr [$ var]'完全支持。 – deceze
我不想从数组中获取值,当索引等于数组中的值时,我试图从$ _GET查询中获取值。 –