Если вы хотите добавить еще один элемент массива в файл JSON, как показывает ваш пример, откройте файл и найдите его до конца. Если у файла уже есть данные, найдите назад один байт, чтобы перезаписать «]» после последней записи, затем напишите «,» плюс новые данные минус начальные «[» новых данных. В противном случае это ваш первый элемент массива, поэтому просто напишите свой массив как обычно.
Извините, я не знаю достаточно о PHP, чтобы опубликовать фактический код, но я сделал это в Obj-C, и это позволило мне чтобы вначале не читать весь файл, а просто добавить его в конец:
NSArray *array = @[myDictionary];
NSData *data = [NSJSONSerialization dataWithJSONObject:array options:0 error:nil];
FILE *fp = fopen(fname, "r+");
if (NULL == fp)
fp = fopen(fname, "w+");
if (fp) {
fseek(fp, 0L, SEEK_END);
if (ftell(fp) > 0) {
fseek(fp, -1L, SEEK_END);
fwrite(",", 1, 1, fp);
fwrite([data bytes] + 1, [data length] - 1, 1, fp);
}
else
fwrite([data bytes], [data length], 1, fp);
fclose(fp);
}