在PHP中整合JSON数据?

时间:2013-08-28 18:20:35

标签: php arrays json

我正在尝试对目录中的每个文件进行排序,读取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只返回“Array”。

1 个答案:

答案 0 :(得分:3)

.=运算符用于字符串连接;它不是为元素添加元素。

您应该使用[] =代替:

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

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

$curAppointmentData = json_decode(file_get_contents('../Appointments/' . $entry));
foreach ($curAppointmentData as $obj) {
    $AllAppointmentData[] = $obj;
}