我正在使用嵌套的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();