我想将CSV数据解析成2d数组。 在我的csv文件中,标题如下,按特定值作为列。
CaseNumber IncidentDate IncidentTime位置事件处置 10120323 3/21/2009 .... ........ ...... ...... .....
我设法将所有CSV文件数据复制到一个名为array的数组中 在myarray中,我创建了一个只有两个标题的二维数组 array [0] =(
[0] => 'IncidentData',
[1] => '配置')
所以我的最终myarray应该是在CSV数组中的头部和myarray中的头部匹配后得到'IncidentData'和'Disposition'的所有列值
有什么想法吗?
这是我到目前为止所拥有的。
<?php
//# Open the File.
if (($handle = fopen("gatech.csv", "r")) !== FALSE) {
// Set the parent multidimensional array key to 0.
$nn = 0;
while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
//# Count the total keys in the row.
$c = count($data);
// Populate the multidimensional array.
for ($x=0;$x<$c;$x++)
{
$csvarray[$nn][$x] = $data[$x];
}
$nn++;
}
// Close the File.
fclose($handle);
}
// take the row'ified data and columnize the array
function columnizeArray($csvarray) {
$array = array();
foreach($csvarray as $key=>$value) {
// reparse into useful array data.
if ($key == 0) {
foreach ($value AS $key2=>$value2) {
$array[$key2] = array();
$array[$key2][] = $value2;
}
}else if ($key > 0){
foreach ($value as $key3=>$value3) {
$array[$key3][] = $value3;
}
}else{
}
}
//print_r($array[1][1]);
return $array;
}
function groupColumns($array = null){
$myarray = array(); //create myarray with sample headers
$myarray = array(array("CaseNumber", "IncidentDate", "IncidentTime", "Location", "Incident", "Disposition" ));
//k = number of columns 0-5 starts k=1 so k-1
foreach($array as $k=>$v){ //make col into row
for($i==0;$i<$k-1; $i++){
print_r($v); //test: prints everything on CSV the columns as row
while($array[0][$i] != $myarray[0][$i])
if($array[0][$k] == $myarray[0][$k])
print_r($myarray[0][$k]);
else
print_r('test : not reading');
}
}
}
$array2 = groupColumns(columnizeArray($csvarray));
?>