2013-08-28 21 views
1

我試圖對目錄中的每個文件進行排序,讀取json數據,將其解碼,將其放入數組中,然後將其全部寫入新文件。在PHP中整合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的只是返回

回答

3

.=運算符用於字符串連接;它不是爲數組添加元素。

您應該使用[] =代替:

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

如果你的文件包含要合併成一個單一的陣列陣列,您可以使用foreach循環:

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

是的,原因' print_r'打印「數組」是因爲'json_decode'產生的數組被轉換爲字符串。 – migg

+0

好的。我改變了這一點。現在,在我的json文件中,它以'[['',因爲有兩個文件。這仍然被認爲是適當的JSON格式(這可以被任何JSON解碼器/閱讀器讀取)?我認爲目前的格式是'[[{「Name」:「Value」,「Name」:「Value」}] [{「Name」:「Value」,「Name」:「Value」}]]' – JVE999

+1

@ Jamil:除了兩個數組之間缺少逗號,是的,這是有效的JSON。 – PleaseStand