簡體   English   中英

來自關聯數組的PHP CSV

[英]PHP CSV from Associative Array

我遇到的麻煩是在使用PHP的情況下從關聯數組創建CSV文件。 我的關聯數組是sqlsrv_fetch_array函數的結果。

當我運行代碼時:

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
  echo '<pre>';
  print_r($row);
  echo '</pre>';
}

我可以看到:

Array
  (
  [Username] => User1
  [Password] => Password1
  [DisplayName] => UserOne
  [FirstName] => User
  [LastName] => One
  [Role] => Bacon
  [HomeEmailAddress] => UserOne@email.com
)
Array
(
  [Username] => User2
  [Password] => Password2
  [DisplayName] => UserTwo
  [FirstName] => User
  [LastName] => Two
  [Role] => Egg
  [HomeEmailAddress] => UserTwo@email.com
)
Array
(
  [Username] => User3
  [Password] => Pasword3
  [DisplayName] => UserThree
  [FirstName] => User
  [LastName] => Three
  [Role] => Sausage
  [HomeEmailAddress] => UserThree@email.com
)

一切都很好。 但是我遇到的問題是將其導入CSV文件。 我希望文件看起來像

Username,Password,DisplayName,FirstName,LastName,Role,HomeEmailAddress
User1,Password1,UserOne,User,One,Bacon,UserOne@email.com
User2,Password2,UserTwo,User,Two,Egg,UserTwo@email.com
User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com

我一直在努力嘗試使fputcsv工作,在while循環中使用了foreach($ row as $ key => $ value)循環,但我一直無法快速完成。 這是徒勞的追求嗎? 可以在使用_sql_fetch_array_創建的數組上完成此操作。

如果我將代碼放入where循環中:

$fp = fopen('file.csv', 'w');

foreach ($row as $key => $value) {
 fputcsv($fp, $row);
}

fclose($fp);

我得到帶有輸出的csv文件:

User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com
User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com
User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com
User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com
User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com
User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com
User3,Password3,UserThree,User,Three,Sauage,UserThree@email.com

任何提示或建議,將不勝感激。

您需要結合使用兩組代碼(即讀取每一行,然后將該行寫到CSV中)。

$fp = fopen('file.csv', 'w');
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
 fputcsv($fp, $row);

}

fclose($fp);

您執行此操作的方式只是查看一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM