我阅读了大部分有关我的问题的讨论,但我没有找到解决方案。 所以,我有一个.csv文件,我从中读取,提取所有内容并填充多维数组。这就是我写的代码:
if (($handle = fopen("dateRegion.csv", "r")) !== FALSE) {
# Set the parent multidimensional array key to 0.
$pr = 0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
# Count the total keys in the row.
$count = count($data);
# Populate the multidimensional array.
for ($x = 0; $x < $count; $x++) {
$brim[$pr][$x] = $data[$x];
}
$pr++;
}
fclose($handle);
}
之后,我提取我需要的元素并将其放入另一个数组中。该数组将是新.csv文件的内容。
这是代码:
$parserCsv = array();
$dip=1;
do {
$region = $brim[$dip][7];
$sex = $brim[$dip][8];
$frequency = $brim[$dip][9];
$value = $brim[$dip][10];
$parserCsv[] = array($region, $sex, $frequency, $value);
$dip++;
} while($dip <= 6336);
这是数组的“var_dump()”:
Array(
[0] => Piemonte
[1] => maschi
[2] => 2005
[3] => 16.972)
等
我尝试使用fputcsv()方法将数组$ parserCsv的内容与该脚本放在一起:
$fp = fopen('csvExtract.csv', 'w');
foreach ($parserCsv as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
但它不起作用。文件csvExtract.csv的内容为空。我不明白我的错误,我尝试了其他解决方案,如创建数组$ parserCsv,如:
$parserCsv = array(
array($region), array($sex), array($frequency), array($value));
并没有任何改变。有人有建议吗?
编辑:使用mkjasinski建议的解决方案编辑代码!代码现在正在运行。 感谢所有的回复。
布鲁斯
答案 0 :(得分:1)
试试这个:
if (($handle = fopen("dateRegion.csv", "r")) !== FALSE) {
# Set the parent multidimensional array key to 0.
$pr = 0;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
# Count the total keys in the row.
$count = count($data);
# Populate the multidimensional array.
for ($x = 0; $x < $count; $x++) {
$brim[$pr][$x] = $data[$x];
}
$pr++;
}
fclose($handle);
}
和此:
$parserCsv = array();
$dip=1;
do {
$region = $brim[$dip][7];
$sex = $brim[$dip][8];
$frequency = $brim[$dip][9];
$value = $brim[$dip][10];
$parserCsv[] = array($region, $sex, $frequency, $value);
$dip++;
} while($dip <= 6336);
并保存:
$fp = fopen('csvExtract.csv', 'w');
foreach ($parserCsv as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
答案 1 :(得分:0)
以下代码以CSV格式输入4条记录
$parserCsv = array(
array('Piemonte'),
array('maschi'),
array(2005),
array(16.972)
);
$fp = fopen('blah.csv', 'w');
foreach($parserCsv as $fields)
{
fputcsv($fp, $fields);
}
fclose($fp);