我有正在使用此代碼返回的結果集:如何轉換值的陣列從查詢返回到逗號分隔值
while ($row = mysql_fetch_array($result)) {
echo "ID ".$row['v2id'];
}
此返回ID 2ID 3ID 4ID 8
我將如何轉換爲逗號分隔值,然後將它們存儲在一個變量?
所以,如果我呼應出變量,最終輸出將應該像圖2,3,4,8
我有正在使用此代碼返回的結果集:如何轉換值的陣列從查詢返回到逗號分隔值
while ($row = mysql_fetch_array($result)) {
echo "ID ".$row['v2id'];
}
此返回ID 2ID 3ID 4ID 8
我將如何轉換爲逗號分隔值,然後將它們存儲在一個變量?
所以,如果我呼應出變量,最終輸出將應該像圖2,3,4,8
存儲中的所有陣列中的,然後加入他們使用的值「」作爲膠
$values = array();
while ($row = mysql_fetch_array($result)) {
$values[] = $row['v2id'];
}
echo join(", ", $values);
然後,我將如何在查詢中使用這些值:SELECT * FROM videos WHERE video_id IN(value,value,value); – 2011-06-07 08:18:22
''SELECT * FROM videos where video_id IN('。join(',',$ values)。')''。確保$值不是一個空數組,否則最終會在sql中出現語法錯誤。 – 2011-06-07 08:26:07
由於您似乎只是存儲數字,所以在這種情況下會起作用,但應該注意的是,CSV文件比用逗號連接的值列表更復雜。如果'$ values'包含任何帶逗號的項目,如果嘗試將其轉換回數組,則輸出的字符串將不會被正確解析。如果你只是加入他們展示給人類,這將工作得很好,但如果你希望它是機器可讀的,你將不得不做更多的事情'加入'他們。 – 2011-06-07 08:33:33
所有值添加到一個數組,那麼它使用', '
implode膠水
$result = array();
while ($row = mysql_fetch_array($result)) {
$result[] = $row['v2id'];
}
echo implode(', ', $result);
$data = array(1,2,'Hello',3,4,'1,234.56');
$outstream = fopen("php://temp", 'r+');
fputcsv($outstream, $data, ',', '"');
rewind($outstream);
$csv = fgets($outstream);
fclose($outstream);
$ids = array();
while ($row = mysql_fetch_array($result)) {
$ids[] = (int)$row['v2id'];
}
echo implode(", ", $values);
1ID 2ID 3ID 4ID 8可以通過(int)$ row ['v2id']轉換爲int,所以$ ids將只包含int。
我的方法是這樣
$csv = ''; while ($row = mysql_fetch_array($result)) { /* Note the '.=' - appends variable */ $csv .= "ID ".$row['v2id']; $csv .= ','; // This is the bit I missed out } /* Remove the final trailing comma */ $csv = substr($csv, 0, -1); echo $csv;
金五星爲察覺的「故意」的錯誤去ssapkota
沒有','它怎麼可能是CSV? – ssapkota 2011-06-07 10:57:36
斑點 - 現在已經改正了 – RiggerTheGeek 2011-08-10 09:55:27
值本身可以包含逗號? – 2011-06-07 08:08:30