PHP从CSV文件中提取标题行-代码说明
我正在学习一个教程,遇到了需要解释的代码 此模板php代码用于解析csv文件并用结果填充$data关联数组PHP从CSV文件中提取标题行-代码说明,php,csv,Php,Csv,我正在学习一个教程,遇到了需要解释的代码 此模板php代码用于解析csv文件并用结果填充$data关联数组 <?php $header = false; $data = []; $file = fopen($filename, 'r'); while(!feof($file)) { $row = fgetcsv($file, 0, ','); if($row == [NULL] || $row === FALSE) { continue; } if(!$head
<?php
$header = false;
$data = [];
$file = fopen($filename, 'r');
while(!feof($file)) {
$row = fgetcsv($file, 0, ',');
if($row == [NULL] || $row === FALSE) { continue; }
if(!$header) {
$header = $row;
} else {
$data[] = array_combine($header, $row);
}
}
fclose($file);
除本节外,我了解所有内容:
if(!$header) {
$header = $row;
}
我很难理解php代码是如何识别哪些是标题行,哪些不是。
请有人解释一下,谢谢。您的CSV文件的第一行是标题。 为了确保此标题不是作为正常行读取,他在开头使用“$header=false;” 在第一次迭代后,他更新值:
if(!$header) {
$header = $row;
}
$row的值已填充,因此本质上为true
$header=false代码>最初。第一行是传入的,$header
为false,因此$header
将设置为$row
。在下一次迭代中,$header
将不再为false,因此continue
只是第一行。在循环的第一次迭代中,变量$header未设置(!$header),因此脚本会设置它($header=$row)。在第二次迭代中,设置了$header,因此其他所有内容都添加到$data[]。就这样。欢迎来到Stackoverflow!
if(!$header) {
$header = $row;
}