在我的php中,我正在读取一个文件并成功将每一行放入一个数组($line[1]
,因为它是一个3列CSV而我只需要第二个值):
while (($line = fgetcsv($file, 1000)) !== false)
{
$course[] = array('course' => $line[1]);
}
$course[]
正确包含如下数组:
0 =>
array (size=1)
'course' => string 'Course One' (length=68)
1 =>
array (size=1)
'course' => string 'Course Two' (length=45)
问题是我无法使用json_encode
$json_res = json_encode($course);
编辑:所以,为了清楚,我有这样的数组
2 =>
array (size=1)
'course' => string 'Associate Degree of Business Studies' (length=36)
3 =>
array (size=1)
'course' => string 'Associate Degree of Business Administration' (length=43)
$json_encode
,给我
boolean false
答案 0 :(得分:0)
在考虑到您提供的所有信息后,您的原始代码应该有效。试试这个,让我知道它是否有效。
$file = new SplFileObject("file.csv");
$file->setFlags(SplFileObject::READ_CSV);
$course = array();
foreach ($file as $row) {
$line = array('course' => $row[1]);
array_push($course, $line);
}
$json_res = json_encode($course);
var_dump($json_res);
更新:试试这段代码,让我知道它是否有效:
$file = fopen('file.csv', 'r');
$course = array();
while (($data = fgetcsv($file, 1000, ",")) !== FALSE) {
$line = array('course' => utf8_decode($data[1]));
array_push($course, $line);
}
$json_res = json_encode($course);
var_dump($json_res)