php读取csv数据保存到数组的方法
本文实例讲述了php读取csv数据保存到数组的方法。分享给大家供大家参考。具体分析如下:
csv是常用的excel格式的替代品,很多时候我们导出数据是都会导成csv格式的,这样和excel没什么区别,下面的程序是要读取csv数据保存到数组我们要对数据进行操作,所以保存到数据,代码如下:
$info=csvtoarray::open('teste.csv');
//echo'<pre>';
//print_r($info);
//echo'</pre>';
foreach($infoas$c)
{
echo'学号:'.$c[0];
echo'姓名:'.$c[1];
echo'年龄:'.$c[2];
echo'身高:'.$c[3].'<br>';
}
finalclasscsvtoarray{
/**
*把csv文件解析为一个数组返回
*
*@paramstring$file要解析的csv文件路径
*@paramchar$delimitercsv文件里的内容分隔符默认为;
*@returnarray
*/
publicstaticfunctionopen($file,$delimiter=';'){
returnself::ordenamultiarray(self::csvarray($file,$delimiter),1);
}
privatefunctioncsvarray($file,$delimiter)
{
$result=array();
$size=filesize($file)+1;
$file=fopen($file,'r');
$keys=fgetcsv($file,$size,$delimiter);
fseek($file,0);//这里原来的没有..自己加上..这样能读取到第一行的内容
while($row=fgetcsv($file,$size,$delimiter))
{
for($i=0;$i<count($row);$i++)
{
if(array_key_exists($i,$keys))
{
$row[$keys[$i]]=$row[$i];
}
}
print_r($row);
$result[]=$row;
}
fclose($file);
return$result;
}
privatefunctionordenamultiarray($multiarray,$secondindex)
{
while(list($firstindex,)=each($multiarray))
$indexmap[$firstindex]=$multiarray[$firstindex][$secondindex];
asort($indexmap);
while(list($firstindex,)=each($indexmap))
if(is_numeric($firstindex))
$sortedarray[]=$multiarray[$firstindex];
else$sortedarray[$firstindex]=$multiarray[$firstindex];
return$sortedarray;
}
}
希望本文所述对大家的php程序设计有所帮助。