如何将字符串的每个字符保存在不同的列中
How to save each character of string in different column
我正在根据 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!";
}
并得到这样的输出:
但我希望输出是这样的:
h,e,l,l,o,w,o,r,l,d
不同列中的每个字符
我该如何存档?
您可以将字符串拆分成块——在这种情况下,每个块的长度为 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))
);
编辑:
在您的问题中,您要求“不同列中的每个字符”,但根据您的评论,我认为您想要一列,但字符被 space 分割?在那种情况下:
$a = readline('Enter a string: ');
$list = array (
implode(',', str_split($a))
);
fputscsv
将确保字符串被正确转义。
如果你想要 both 多列 and 每列以 space 结尾,然后正常拆分字符串但是还可以通过在末尾添加 space 来修改每个数组条目:
$a = readline('Enter a string: ');
$list = array (
array_map(
function($char) { return "$char,"; },
str_split($a)
)
);
array_map
将为每个数组条目 运行 一个函数(“可调用”)。
我正在根据 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!";
}
并得到这样的输出:
但我希望输出是这样的:
h,e,l,l,o,w,o,r,l,d
不同列中的每个字符
我该如何存档?
您可以将字符串拆分成块——在这种情况下,每个块的长度为 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))
);
编辑:
在您的问题中,您要求“不同列中的每个字符”,但根据您的评论,我认为您想要一列,但字符被 space 分割?在那种情况下:
$a = readline('Enter a string: ');
$list = array (
implode(',', str_split($a))
);
fputscsv
将确保字符串被正确转义。
如果你想要 both 多列 and 每列以 space 结尾,然后正常拆分字符串但是还可以通过在末尾添加 space 来修改每个数组条目:
$a = readline('Enter a string: ');
$list = array (
array_map(
function($char) { return "$char,"; },
str_split($a)
)
);
array_map
将为每个数组条目 运行 一个函数(“可调用”)。