Php 如果当前值为空,则使用上一个数组值-从CSV读取

Php 如果当前值为空,则使用上一个数组值-从CSV读取,php,arrays,csv,replace,Php,Arrays,Csv,Replace,我有一个CSV文件,其内容类似于以下内容: "Red",Red Coat "",Red Dog "",Red Car "Blue",Blue Stuff "Green",Green Stuff "",Green Grass 我可以通过PHP阅读并输出 if (($handle = fopen("file.csv", "r")) !== FALSE) { $row=0; $csv_row = array(); while (($data = fgetcsv($handle, 1000, ",")

我有一个CSV文件,其内容类似于以下内容:

"Red",Red Coat
"",Red Dog
"",Red Car
"Blue",Blue Stuff
"Green",Green Stuff
"",Green Grass
我可以通过PHP阅读并输出

if (($handle = fopen("file.csv", "r")) !== FALSE) {
$row=0;
$csv_row = array();
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$csv_row = $data;

      $previous=$csv_row[0]
      $colour=$csv_row[0]
      if $colouris null then $colour=$previous;
      echo $colour." ".$csv_row[1]."<BR>";

}
fclose($handle);
}
因此,我的CSV将向我展示:

 Red Red Coat
 Red Red Dog ( previously Colour was empty)
 Red Red Car ( previously Colour was empty)
 Blue Blue Stuff
 Green Green Stuff
 Green Green Grass ( previously Colour was empty)
感谢您的帮助

改变这一点:

if $colour is null then $colour=$previous;
$previous=$csv_row[0];
$colour=$csv_row[0];
为此:

if (!$colour)
{
    $colour = $previous;
}
$previous=$csv_row[0];
$colour=$csv_row[1];
因此,如果$color为null或为空,$color将从$previous获取值

此外,我认为您可能需要改变这一点:

if $colour is null then $colour=$previous;
$previous=$csv_row[0];
$colour=$csv_row[0];
为此:

if (!$colour)
{
    $colour = $previous;
}
$previous=$csv_row[0];
$colour=$csv_row[1];

您只需要在代码中更改少量内容。$previous变量不是必需的

这项工程—

if (($handle = fopen("a.php", "r")) !== FALSE) {
$row=0;
$csv_row = array();

$color = "";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $csv_row = $data;
    //Don't update $color if no color available.
    if($csv_row[0] != null){
        $color = $csv_row[0];
    }
    echo $color." ".$csv_row[1]."<BR>";
}
fclose($handle);
}

/*
OUTPUT:
Red Red Coat
Red Red Dog
Red Red Car
Blue Blue Stuff
Green Green Stuff
Green Green Grass
*/
if($handle=fopen(“a.php”、“r”)!==FALSE){
$row=0;
$csv_行=数组();
$color=“”;
while(($data=fgetcsv($handle,1000,“,”)!==FALSE){
$csv_行=$data;
//如果没有可用颜色,则不更新$color。
如果($csv_行[0]!=null){
$color=$csv_行[0];
}
echo$color.“$csv_行[1]”。
“; } fclose($handle); } /* 输出: 红衣 红狗 红色汽车 蓝色的东西 绿色的东西 青草 */
我不确定,但我不认为它是空的,我认为它的值是空的,如果$color==”请尝试。谢谢你们,我最后使用了这个,因为它是我的直接复制粘贴。非常感谢。