我阅读了大多数关于我的问题的讨论,但我没有找到解决方案。所以,我有一个 .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 建议的解决方案编辑代码!该代码现在正在运行。感谢所有的答复。
布鲁斯