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程序设计有所帮助。