我正在從 php 中的用戶輸入創建一個新的 CSV 檔案,如下所示:
public function handle()
{
$a = readline('Enter a string: ');
$list = array (
array($a)
);
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
echo PHP_EOL . "CSV created!";
}
并得到這樣的輸出:

但我希望輸出是這樣的:
你好世界
不同列中的每個字符
我該如何存檔?
uj5u.com熱心網友回復:
您可以將字串拆分為多個塊——在這種情況下,每個塊的長度為 1 個字符——使用str_split.
$a = readline('Enter a string: ');
$list = array (
str_split($a)
);
如果稍后您想添加更多列,則可以執行以下操作:
$a = readline('Enter a string: ');
$list = array (
array_merge(array("foo", "bar"), str_split($a))
);
編輯:
在您的問題中,您要求“不同列中的每個字符”,但是從您的評論中我認為您想要一列但字符被空格分隔?在這種情況下:
$a = readline('Enter a string: ');
$list = array (
implode(',', str_split($a))
);
fputscsv 將確保字串正確轉義。
如果您希望多列和每一列都以空格結尾,則正常拆分字串,但還要通過在末尾添加空格來修改每個陣列條目:
$a = readline('Enter a string: ');
$list = array (
array_map(
function($char) { return "$char,"; },
str_split($a)
)
);
array_map 將為每個陣列條目運行一個函式(“可呼叫”)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414863.html
標籤:
