2013-09-28 18 views
-5

如何訪問foreach函數中的數組key,然後傳遞給mysql查詢。以下代碼返回空白頁面。當「key」是靜態id ='2'時,沒有問題。但我需要使用數組鍵,而不是靜態值。PHP如何訪問foreach函數裏面的key然後傳遞給mysql查詢

foreach ($base as $key => &$value) { 
    $value = db_query("SELECT * FROM {bo_subject} WHERE exam LIKE '%$key%'")->fetchAllKeyed() or exit(mysql_error()); 
} 
+5

這個問題似乎是題外話,因爲海報也懶得閱讀基本PHP文件 –

+2

http://www.php.net/manual/en/control-structures.foreach.php –

+0

打我它@MarkBaker:p – rfoo

回答

2
foreach ($array as $key => &$value) { 
    ... 
} 

(見Manual

編輯:通$通過引用

+0

比你的答覆。它不適用於我的情況 foreach($ base as $ key => $ value){ $ value = db_query(「SELECT * FROM {bo_name} WHERE考試LIKE'%$ key%'」) - > fetchAllKeyed ()或退出(mysql_error()); } 我需要使用foreach($ base as&$ value) – adpo

+1

問題在哪裏使用'foreach($ array作爲$ key =>&$ value)'? – TheWolf

+0

與foreach($ base爲&$值)我可以創建添加數組到現有的數組http://prntscr.com/1tzrlc問題是,這樣做與靜態$ id爲例如id ='4' – adpo

0

值我不推薦使用 「&」 不斷,直到你真的知道你在做什麼。另外我建議使用「for」而不是「foreach」,因爲速度更快,可預測性更強,並且它是在循環期間更改數組的「正確」方式(因爲在大多數情況下使用參考)。要從當前值獲取鍵,請使用key()函數。它在php.net手冊中有詳細記錄。

+0

當我更改我收到的$ id = key($ base)時: http://prntscr.com/1tzu4g – adpo

相關問題