while循环返回重复导致php

时间:2017-10-18 00:40:00

标签: php json

我正在使用嵌套的JSON文件,由于文件的大小,我正在为PHP 7使用JSON pull解析器。我想提取数据并将它们放在csv表中,如下所示:

 `FOO ID`        `NAME`        `UHC`     `UHCCOMPANY`
 `foo_1403039`   `bana`        `nege`    
 `foo_1403039`   `baan`
 `foo_13589`     `anab`        `neeg`    `nege`
 `foo_13590`     `naab`
 `foo_1403220`   `suresh ltd`
 `foo_1403223`   `suresh ltd`

但是如果您在上表中注意到,标题为FOO ID的第一列下的第一和第二数据(foo_1403039)是重复的,我不希望这样。实际上,如果我删除第一列下的第一个数据,并将该列的单元格向上移动一步,那么该表看起来很完美。同样,标题为NAME的第二栏下的最后两个数据(suresh ltd)也是重复的。

我不知道我的代码有什么问题。任何帮助将不胜感激。这是my dummy json file,这是我的PHP代码:

<?php
 require_once 'C:/xampp/htdocs/vendor/autoload.php';
 use \pcrov\JsonReader\JsonReader;
 ini_set("max_execution_time", 0);
 $reader = new JsonReader();
 $reader->open("myjsonfile.json");
 $fo = fopen("mycsv.csv", "w" );
 fputs($fo, "companyID1, name, ultimateHoldingCompany,  uhcCountry".PHP_EOL);
 while($reader->read()) {
 if (preg_match('/^foo_/', $reader->name())){
  $companyID = $reader->name();
  $companyID1 = str_ireplace("foo_","",$companyID);

if ($reader->read("entityName")){
    $entityName = $reader->value();
    $entityName = str_ireplace(","," ",$entityName);
}

if ($reader->read("ultimateHoldingCompany")){       
    $uhcName = null;
    $uhcCountry = null;
    $ultimateHoldingCompany = $reader->value();

    if (empty($ultimateHoldingCompany)){
    }
    else {
        $uhcCountry = $ultimateHoldingCompany[0]['country'];
        $uhcName = $ultimateHoldingCompany[0]['name'];
        $uhcName = str_ireplace(","," ",$uhcName);
    }

}       
fputs($fo,   $companyID1.",".$entityName.",".$uhcName.",".$uhcCountry.PHP_EOL);
}
}
$reader->close();

0 个答案:

没有答案