【发布时间】:2019-12-03 10:54:49
【问题描述】:
我有一个 php 页面,它正在创建一个 csv 文件以供下载,该文件由一个数组组成。 数组的简写:
$data = array("Joe Bloggs", "jbloggs", "John Doe", "jdoe")
我的数组是由其他命令的输出组成的,所以我不能只更改数组的布局,我可以制作两个数组,一个用于名称,一个用于用户名,如果这有助于实现我的目标。
这就是我将数组值添加到我的 csv 文件中的操作:
$output = fopen('php://output', 'wb');
fputcsv($output, array('Name', 'Username'));
foreach ($data as $line ) {
$val = explode(",", $line);
for ($i=0; $i<$val["count"]; $i++); {
fputcsv($output , array($val[$i]));
}
}
fclose($output);
这给了我一个如下所示的 csv:
Name | Username
Joe Bloggs|
jbloggs |
John Does |
jdoe |
真的,我需要将用户名放在同一行但在用户名列中。 我已经尝试过这个和很多变化,但它似乎不起作用,我的想法是我每次将 N 增加 2 所以 $i 将成为名称,因为它是每个其他索引位置,然后在执行 fputcsv 时它会将 1 添加到 $i 以便它会获取用户名,因为它是名称后面的值。
foreach ($data as $line ) {
$val = explode(",", $line);
for ($i=0; $i<$val["count"]; $i+=2); {
fputcsv($output , array($val[$i], $val[$i+1]));
}
}
fclose($output);
使用上面的方法仍然可以得到第一列中的所有值。
为编写我的代码样式问题道歉,但我对此不够深入,无法找到如何在数组的 for 循环中获取两个连续值。
【问题讨论】:
-
$val[i+1]- 你的意思是$i,而不是i。 -
感谢我摆脱了错误,但仍然在一个列中获取所有值
-
那么,您希望在
Joe Bloggs这样的值上实际发生多少“逗号爆炸”?这个值在我看来相当少。
标签: php