猿问

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(!$header) {

     $header = $row;

   } else {

     $data[] = array_combine($header, $row);

   }

 }

 fclose($file);

从此示例 csv 文件中:


brand,model,year,category,gender,color,weight_kg,condition_id,price

Trek,Emonda,2017,Hybrid,Unisex,black,1.5,5,1495.00

Cannondale,Synapse,2016,Road,Unisex,matte black,1.0,5,1999.00

Schwinn,Cutter,2016,City,Unisex,white,18,4,450.00

Mongoose,Switchback Sport,2015,Mountain,Mens,blue,24,2,399.00

Diamondback,Overdrive,2016,Mountain,Unisex,dark green,23.7,3,565.00

Schwinn,21-Speed Suburban CS,2015,Hybrid,Womens,burgundy,20,3,299.00

Schwinn,Sanctuary 7-Speed,2016,Cruiser,Womens,purple,19.5,3,190.00

Vilano,Forza,2015,Road,Unisex,silver,13.6,4,390.00

SE,Creature,2016,BMX,Mens,dark grey,9.1,2,410.00

我了解除此部分之外的所有内容:


if(!$header) {

 $header = $row;

}

我正在努力理解 php 代码如何识别哪个是标题行,哪个不是。谁能解释一下,谢谢。


MYYA
浏览 151回答 1
1回答

牧羊人nacy

CSV 文件的第一行是标题。为了确保这个标题不会被读取为正常行,他使用“$header = false;”&nbsp;一开始。在第一次迭代之后,他更新了值:if(!$header)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$header&nbsp;=&nbsp;$row; &nbsp;&nbsp;&nbsp;&nbsp;}$row 的值是填充的,所以本质上是真的
随时随地看视频慕课网APP
我要回答