首页 > 开发 > PHP > 正文

php读取csv数据保存到数组代码

2024-05-04 21:48:58
字体:
来源:转载
供稿:网友

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.   {//开源代码Vevb.com 
  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.  }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表