为了账号安全,请及时绑定邮箱和手机立即绑定

从一个读取并写入另一个 csv 文件 - PHP

从一个读取并写入另一个 csv 文件 - PHP

PHP
至尊宝的传说 2021-06-15 17:05:29
我有 CSV 文件:测试2.csvID  Name    PriceQ4  Quail   400Q2  Quail   500Q1  Quail   100我用PHP打开这个文件,检查一些条件,如果价格更大或更小,保存新价格,然后我想用php把它放在一个新的CSV文件中。这是我的代码:$file = fopen('test2.csv', 'r');while (($line = fgetcsv($file)) !== FALSE) {   if (array_key_exists($line[0], $result)) {        $oldPrice= 500;        $oldPriceplus20= $oldPrice +($oldPrice*0.2);        $oldPriceminus20= $oldPrice -($oldPrice*0.2);        $newPrice = $line[2];        print( "The 'first' element is in the array\nOld price is: ".$oldPrice."\nNew price is:".$newPrice."\n");        print("Old price with +20% is:".$oldPriceplus20."\nOld price with -20% is:".$oldPriceminus20."\n");             if ($newPrice <= $oldPriceplus20 && $newPrice >= $oldPriceminus20){            echo"Take new price\n\n";        }        else{            $line[2] = $oldPrice;            echo"Take the old price.\n";        }    }    $fp = fopen('write.csv', 'w');    foreach ($line as $lin) {        fputcsv($fp, array($lin), ',', ' ');    }    fclose($fp);}fclose($file);但这是我得到的输出:Q1Quail100我哪里做错了?如果需要,我的新 CSV 文件应该与 test2.csv 几乎相同,只是有新的价格。
查看完整描述

1 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

问题是您正在覆盖输出文件并写入输入文件的每个元素,就好像它是文件中的一行一样。此版本在开始时打开输出文件,然后在处理时添加每一行...


$file = fopen('test2.csv', 'r');

$fp = fopen('write.csv', 'w');

while (($line = fgetcsv($file)) !== FALSE) {

    if (array_key_exists($line[0], $result)) {

        $oldPrice= 500;

        $oldPriceplus20= $oldPrice +($oldPrice*0.2);

        $oldPriceminus20= $oldPrice -($oldPrice*0.2);

        $newPrice = $line[2];

        print( "The 'first' element is in the array\nOld price is: ".$oldPrice."\nNew price is:".$newPrice."\n");

        print("Old price with +20% is:".$oldPriceplus20."\nOld price with -20% is:".$oldPriceminus20."\n");

        if ($newPrice <= $oldPriceplus20 && $newPrice >= $oldPriceminus20){

            echo"Take new price\n\n";

        }

        else{

            $line[2] = $oldPrice;

            echo"Take the old price.\n";


        }


    }

    fputcsv($fp, $line, ',', ' ');

}

fclose($file);

fclose($fp);


查看完整回答
反对 回复 2021-06-25
  • 1 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信