我想用.csv
中的对象加载我的数组当我这样写JSON就像强制字符串一样,没关系,我的代码运行正常。
当我尝试制作对象并将它们加载到数组中时,新对象会覆盖数组中的所有对象,并且我得到一个充满相同值的数组。对我的错误有任何建议吗?
最后,变量内容给出了有效的JSON(没有'[]'括号),但是数组contentArr给出了完整相同对象的数组......
这是代码:
$content = '';
$contentArr = array();
$Obj = new stdClass();
$count = 0;
while ($csv = fgetcsv($file,1000,",")) {
$content .= "{\"number\":\"".$csv[0]=Filter($csv[0])."\",\"message\":\"".$csv[1]."\"},";
$count++;
$Obj -> number = $csv[0]=Filter($csv[0]);
$Obj -> message = $csv[1];
$contentArr[] = $Obj;
}
$content = substr($content, 0, -1);
答案 0 :(得分:0)
我希望此代码可以帮助您
$openFile = fopen($file, "r");
while(!feof($openFile)){
$csv = fgetcsv($file);
//your code here
}
fclose($openFile);
答案 1 :(得分:0)
解决了自己。
我的错误在于我只将链接更改为我在while循环之前创建的一个对象。当我在while循环中移动对象创建INTO时,我正在为我加载到数组中的每个新数据创建新对象。
代码:
$content = '';
$contentArr = array();
//$Obj = new stdClass(); ----> this was my mistake
$count = 0;
while ($csv = fgetcsv($file,1000,",")) {
$content .= "{\"number\":\"".$csv[0]=Filter($csv[0])."\",\"message\":\"".$csv[1]."\"},";
$count++;
$Obj = new stdClass();// ----> that's how it should be
$Obj -> number = $csv[0]=Filter($csv[0]);
$Obj -> message = $csv[1];
$contentArr[] = $Obj;
}
$content = substr($content, 0, -1);