当前位置:首页 > PHP教程 > php应用 > 列表

php读取csv数据保存到数组的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-05 13:47:03 浏览: 评论:0 

这篇文章主要介绍了php读取csv数据保存到数组的方法,通过封装的类文件实现这一功能,是对csv文件操作的实用技巧,需要的朋友可以参考下

本文实例讲述了php读取csv数据保存到数组的方法。分享给大家供大家参考。具体分析如下:

csv是常用的excel格式的替代品,很多时候我们导出数据是都会导成csv格式的,这样和excel没什么区别,下面的程序是要读取csv数据保存到数组我们要对数据进行操作,所以保存到数据,代码如下:

  1. $info=csvtoarray::open('teste.csv'); 
  2. //echo '<pre>'; 
  3. //print_r($info); 
  4. //echo '</pre>'; 
  5. foreach ($info as $c
  6.  { 
  7.   echo '学号:'.$c[0]; 
  8.   echo '姓名:'.$c[1]; 
  9.   echo '年龄:'.$c[2]; 
  10.   echo '身高:'.$c[3].'<br>'
  11.  } 
  12.  
  13.  
  14.  final class csvtoarray{ 
  15.  
  16.   /** 
  17.    * 把csv文件解析为一个数组返回 
  18.    * 
  19.    * @param string $file 要解析的csv文件路径  
  20.    * @param char $delimiter csv文件里的内容分隔符 默认为; 
  21.    * @return array 
  22.    */ 
  23.   public static function open($file$delimiter = ';'){ 
  24.    return self::ordenamultiarray(self::csvarray($file$delimiter), 1); 
  25.   } 
  26.  
  27.   private function csvarray($file$delimiter
  28.   { 
  29.    $result = array(); 
  30.    $size = filesize($file) + 1; 
  31.    $file = fopen($file'r'); 
  32.    $keys = fgetcsv($file$size$delimiter); 
  33.    fseek($file,0);//这里原来的没有..自己加上..这样能读取到第一行的内容 
  34.    while ($row = fgetcsv($file$size$delimiter)) 
  35.    { 
  36.     for($i = 0; $i < count($row); $i++) 
  37.     { 
  38.      if(array_key_exists($i$keys)) 
  39.      { 
  40.       $row[$keys[$i]] = $row[$i]; 
  41.      } 
  42.     } 
  43.     print_r($row); 
  44.     $result[] = $row
  45.    } 
  46.  
  47.    fclose($file); 
  48.  
  49.    return $result
  50.   } 
  51.   private function ordenamultiarray($multiarray$secondindex
  52.   { 
  53.    while (list($firstindex, ) = each($multiarray)) 
  54.    $indexmap[$firstindex] = $multiarray[$firstindex][$secondindex]; 
  55.    asort($indexmap); 
  56.    while (list($firstindex, ) = each($indexmap)) 
  57.    if (is_numeric($firstindex)) 
  58.    $sortedarray[] = $multiarray[$firstindex]; 
  59.    else $sortedarray[$firstindex] = $multiarray[$firstindex]; 
  60.    return $sortedarray
  61.   } 
  62. }

Tags: php读取csv

分享到: