2012-08-31 21 views
1

FROM數組的數組無鑰匙轉換陣列值瓦爾PHP

$array = array('apple','bee','carrot','dragon','elephant') 

$newarray = ($apple,$bee,$carrot,$dragon,$elephant) 

爲什麼: 我要創建靈活的功能,以獲得從場一個MySQL數據庫,像這樣:

<?php 
$query = "SELECT ".$array." FROM table"; 
$result = mysql_query($query); 
while($row = mysql_fetch_array($result)){ 
     extract($row); 
     echo $newarray; 
} 
?> 

,所以我可以:

  • SELECT蘋果,蜜蜂,胡蘿蔔和回聲$蘋果,$蜜蜂和$胡蘿蔔
  • SELECT蜜蜂,胡蘿蔔,大象和echo $蜜蜂,$胡蘿蔔,以及$大象
  • 或其他。
+0

echo $ row ['apple'],$ row ['bee'],$ row ['carrot']''''有什麼問題? –

+0

沒有錯,但如何將'$ array = array('apple','bee','carrot')'轉換爲'$ row ['apple'],$ row ['bee'],$ row ['胡蘿蔔']' – Leo

回答

0
foreach($array as $value){ 
    $newarray[] = ${$value}; 
    //Edited: maybe you'll need to reset the array after use it 
    unset($newarray); 
} 

知道了!

謝謝大家!

3

你爲什麼不只是從數據庫中獲取一個關聯數組,然後使用該密鑰關聯數組像這樣:

// assume field names are 'apple', 'bee', 'carrot', etc. 
while($row = mysql_fetch_assoc($result)){  
    foreach($row as $key => $value) { 
     // this will set variables as $apple, $bee, $carrot, etc. 
     $$key = $value; 
    } 
} 

當然,如果你得到更多的這是不是所有的實用而不是結果集中的一行,因爲變量會被覆蓋。

的關鍵,你想要做的是(在這種情況下$$key)使用的變量變量的

噢,你應該也不會使用mysql_ *函數,而是mysqli_ *或PDO。

+0

將試試這個。我讀了關於mysqli而不是mysql的內容,但是我還沒搞清楚。謝謝! – Leo

+0

我發現了一個基於你的答案的解決方案,謝謝! – Leo

+0

也許這個'$$ key'和'$ {$ value}'是一樣的嗎? – Leo