阅读CSV文件到数组并跳过第一行PHP

阅读CSV文件到数组并跳过第一行PHP

问题描述:

我有一个CSV文件和前两列头阅读CSV文件到数组并跳过第一行PHP

'Student','ID','SIS User ID' 
Points Possible  
Ashe, 797389, 11721809 
Darius, 20237, 55050811 
Fizz, 34604, 55035088 
Tom Kenn,20232, 55050802 
Vayne, 797413, 11813445 

对于前两列,他们不应该被添加到阵列中。 从阿什开始,我想Ashe, 797389, 11721809行添加到array[0] 大流士array[1],....

我写我的代码如下:

<?php 
$csvData = file_get_contents('output.csv'); 
$lines = explode(PHP_EOL, $csvData); 
$array = array(); 
foreach ($lines as $line) { 
    $array[] = str_getcsv($line); 
} 
print_r($array[2][5]); 
?> 

我应该以跳过做前两行?

修复问题后,出现一个空数组。如何消除空阵列?

[797413] => Array 
    (
     [0] => Vayne 
     [1] => 797413 
     [2] => 11813445 
     [3] => lsmdec 
     [4] => cs3487 
     [5] => 12.15 
     [6] => 15 
     [7] => 5 
     [8] => 17 
     [9] => 49.15 
     [10] => 49.15 
     [11] => 49.15 
     [12] => 49.15 
     [13] => 49.15 
     [14] => 49.15 
     [15] => 49.15 
     [16] => 49.15 
     [17] => C- 
     [18] => C- 
    ) 

[] => Array 
    (
     [0] => 
    ) 

你可以从数组中删除第一个元素,并保持安全的地方以备以后使用,就像这样:

<?php 
$csvData = file_get_contents('output.csv'); 
$lines = explode(PHP_EOL, $csvData); 
$array = array(); 
$first_row = array_shift($lines); 
foreach ($lines as $line) { 
    $newLine = str_getcsv($line); 
    if(isset($newLine[0]) && !empty($newLine[0])){ 
     $array[] = str_getcsv($line); 
    } 
} 
print_r($array[2][5]); 

?> 

这将会把你的数组的第一个元素为$first_row和删除$lines; 如果您需要跳过超过第一行,您可以堆栈array_shift()方法删除第一行两次。

+0

它的作品! Thx为您提供帮助!它拯救了我的一天! – killer2318

+0

@ killer2318不客气! – FMashiro

+0

[797413] =>数组 ( [0] => Vayne [1] => 797413 [2] => 11813445 [3] => lsmdec [4] => cs3487 [5] => 12.15 [6] => 15 [7] => 5 [8] => 17 [9] => 49.15 [10] => 49.15 [11] => 49.15 [12] => 49.15 [13] => 49.15 [14] => 49.15 [15] => 49.15 [16] => 49.15 [17] => C- [18] => C-(0)=> ) – killer2318

$csvData = file_get_contents('output.csv'); 
    $lines = explode(PHP_EOL, $csvData); 
    $array = array(); 
    foreach ($lines as $key => $line) {    
     if ($key !== 0) { 
      $array[] = str_getcsv($line); 
     } 
    } 
    echo '<pre>'; 
    print_r($array); 
    die; 

现在你可以别的检查数组值也可以转移第一阵列可以使用array_shift功能