我想在PHP中访问关联数组的值。我在PHP中使用以下循环填充数组:
$db = array("a","b","c");
foreach ($db as $q) {
$$q = 'value';
}
此版本打印正确的值
foreach ($db as $q) {
echo '<li>'; echo $$q; echo '</li>';
}
\\THIS GIVES ME THE CORRECT OUTPUT <li>value</li><li>value</li><li>value</li>
但我想通过索引
访问这些值$num = count($db);
for ($i = 0; $i < $num; $i++) {
echo '<li>'; echo $$db[$i]; echo '</li>';
}
\\\\THIS GIVES ME THE WRONG OUTPUT (EMPTY STRINGS <li></li><li></li><li></li>
第二个版本出了什么问题?如何通过索引正确访问此关联数组中的值?
答案 0 :(得分:1)
echo '<li>'; echo $$db[$i]; echo '</li>';
这一行中$
太多了。写:
echo '<li>'; echo $db[$i]; echo '</li>';
这应该可以解决问题。
PS :您不必每次都写echo
。使用字符串连接:
echo '<li>' . $db[$i] . '</li>';
答案 1 :(得分:1)
你正在尝试做一些非常奇怪的事情,无论如何你的问题的解决方案是大括号:{ }
$num = count($db);
for ($i = 0; $i < $num; $i++) {
echo '<li>'; echo ${$db[$i]}; echo '</li>';
}
看看大括号是如何解决歧义的,因为如果没有它们,php就不会知道你是指${$db}[$i]
还是${$db[$i]}