我遍歷一個目錄,並在其合併JSON檔案。但它並不像我想要的那樣工作。迭代3個文件後得到的數組只是最後一個文件。一路上似乎只是覆蓋了以前的文件。雖然我不確定。另外,我想刪除某些條目的行,但如果合併至少能夠起作用,我會很高興。提前合併JSON文件一起在PHP
<?php
$dir = new DirectoryIterator("path1");
$destination = "path2";
$json = file_get_contents($destination);
$result = json_decode($json,true);
foreach ($dir as $fileinfo) {
if (!$fileinfo->isDot()) {
$path = $dir -> getPathname();
$data = file_get_contents($path);
echo $data; //works as intended. Prints 3 different Arrays after eachother
$current = json_decode(file_get_contents($path),true);
$result = array_merge($result,$current);
}
}
$final = json_encode($result);
file_put_contents($destination,$final);
?>
感謝所有幫助
每個文件內容都以'['開頭,還是以'{'開頭? – trincot
@trincot它始於{ – Kobsondasusa
然後請認識到,如果這些數組中的兩個共享密鑰,則第一個密鑰將被最後一個密鑰覆蓋。這是'array_merge'的效果。在極端情況下,如果兩個數組具有完全相同的鍵(但具有不同的值),則只會留下最後一個數組。你可以檢查是否是這種情況? – trincot