2016-09-26 75 views
1

我想訪問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> 

第二個版本出了什麼問題?我如何通過索引正確訪問此關聯數組中的值?

+1

刪除多餘的'$'='echo $ db [$ i];' – nogad

+0

是否返回鍵值?我如何獲得這些值? – user2212461

+2

不,你是否打算測試它 – nogad

回答

1
echo '<li>'; echo $$db[$i]; echo '</li>'; 

在這一行是一個$太多。寫:

echo '<li>'; echo $db[$i]; echo '</li>'; 

這應該有所斬斷。

PS:您不必每次都寫echo。使用字符串連接:

echo '<li>' . $db[$i] . '</li>'; 
+0

不會返回密鑰嗎?我如何獲得這些值? – user2212461

1

你正在嘗試做的事情很奇怪,反正解決問題的方法是括號:{ }

$num = count($db); 
for ($i = 0; $i < $num; $i++) { 
    echo '<li>'; echo ${$db[$i]}; echo '</li>'; 
} 

看怎麼括號解決歧義,因爲沒有他們,PHP不知道你是指${$db}[$i]還是${$db[$i]}

相關問題