1

我正在尝试对目录中的每个文件进行排序,读取 json 数据,对其进行解码,将其放入数组中,然后将其全部写入一个新文件。

我遇到的问题是结果数组似乎只是一个 json 数据数组的数组。

这是我的代码:

    $AllAppointmentDataFileName = 'AllAppointmentData.jsonp';
    $AllAppointmentDataURL = '../Appointments/' . $AllAppointmentDataFileName;
    if ($handle = opendir('../Appointments')) {

        while ( false !== ($entry = readdir($handle)) ) {
            if ($entry != "." && $entry != ".." && $entry != $AllAppointmentDataFileName) {

                $AllAppointmentData .= json_decode(file_get_contents('../Appointments/' . $entry));

                print_r($AllAppointmentData); echo "<br>";

                echo "$entry:<br>" . file_get_contents('../Appointments/' . $entry) . "<br>";
            }
        }

        closedir($handle);
    }

    file_put_contents($AllAppointmentDataURL, json_encode($AllAppointmentData));

print_r 只返回“数组”。

4

1 回答 1

3

.=运算符用于字符串连接;它不适用于向数组添加元素。

您应该[] =改用:

$AllAppointmentData[] = json_decode(file_get_contents('../Appointments/' . $entry));

如果您的文件包含要合并到单个数组中的数组,则可以使用 foreach 循环:

$curAppointmentData = json_decode(file_get_contents('../Appointments/' . $entry));
foreach ($curAppointmentData as $obj) {
    $AllAppointmentData[] = $obj;
}
于 2013-08-28T18:29:03.207 回答