2012-06-13 218 views
2

我有一個由mysql_query填充的數組。價值觀是這個數組中的我要放在一個連續的字符串,例如:將PHP數組合併成一個字符串

$array = array(1, 2, 3, 4, 5); 

INSERT INTO 'new_slovmas'.'$tabulka'('$array[0]', '$array[1]', '$array[3]') 
     VALUES ('$r_1', '$r_2', '$r_3')"; 

意識在一個表中超過50列,我不想手工填寫的,而是由while或for。所以我想將值成一個字符串是這樣的:

$array = array("'1',", "'2',", "'3',", "'4',", "'5',"); 

所以現在我有這樣的:

echo $array[2]; => '3', 

通過我不會實現一個變量具有多個項目的週期。

$str = $array[0], $array[1] ... $array[xy]; 

INSERT INTO 'new_slovmas'.'$tabulka'('$str') 
     VALUES ('$r_1', '$r_2', '$r_3')"; 

回答

5

使用implode()

$string = implode(',', array(1, 2, 3, 4, 5)); // $string = 1,2,3,4,5 
+1

實際上它需要是$ string =「'」.implode(....)。「'」; – TigerTiger

+0

好吧,這個數組呢'$ stlpec [] = $ row ['column_name'];'我不知道它的值。它如何看起來與函數內爆?它不需要'implode(',',$ stlpec [$ i]);' –

+0

由於數組沒有存儲在數據庫列中,因此您實際上不會使用數組。你需要確定什麼樣的數據才能真正計劃對它做任何事情。 –

3

PHP的破滅功能將解壓的數組在JavaScript中使用的字符串。試試這個:

$str = implode(',',$array); 
+0

-1?爲什麼downvote? – jcho360

+0

對不起,錯誤... –

0

用途:

join(",", $array); 

此外,要確保你將它們插入到數據庫之前逃脫你的價值觀。如果你的值中有一個單引號(')或者更糟糕的東西(比如有效的SQL),你會這樣做,這會使你的查詢崩潰。您可以使用mysql_real_escape_string(...)或mysqli_real_escape_string(...)來獲取此

+0

'join()'是'implode()的別名' –

相關問題