阅读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()
方法删除第一行两次。
答
$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功能
它的作品! Thx为您提供帮助!它拯救了我的一天! – killer2318
@ killer2318不客气! – FMashiro
[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