2016-02-16 2 views
0

У меня есть около 850 файлов json, и я хотел бы объединить их в группы по 50. Какой был бы лучший способ для этого?Несколько внешних файлов JSON для объединения

array_merge?

Я видел несколько примеров, но не более двух массивов.

<? 

$array1 = json_decode(file_get_contents('1.json')); 
$array2 = json_decode(file_get_contents('2.json')); 
$array3 = json_decode(file_get_contents('3.json')); 
$array4 = json_decode(file_get_contents('4.json')); 
$array5 = json_decode(file_get_contents('5.json')); 
$array6 = json_decode(file_get_contents('6.json')); 
$array7 = json_decode(file_get_contents('7.json')); 
$array8 = json_decode(file_get_contents('8.json')); 
$array9 = json_decode(file_get_contents('9.json')); 
$array10 = json_decode(file_get_contents('10.json')); 
$array11 = json_decode(file_get_contents('11.json')); 
$array12 = json_decode(file_get_contents('12.json')); 
$array13 = json_decode(file_get_contents('13.json')); 
$array14 = json_decode(file_get_contents('14.json')); 
$array15 = json_decode(file_get_contents('15.json')); 

$result = array_merge($array14, $array15); 
var_dump(json_encode($result)); 

?> 

Пример 1 из JSON: http://pastebin.com/QDyGGjQj

обнадеживающего Результата (3 из 50, так как 50 огромно примера): http://pastebin.com/fP2MHN2Y

+0

вы можете дать п номер массива в качестве параметра в 'array_merge' функции –

ответ

1

Попробуйте это:

$dir = = "/files/"; //replace it with yours. 
$f = scandir($dir); 
foreach($f as $file) { 
    $arr[] = json_decode(file_get_contents($file)); 
} 
$chunk = array_chunk($arr,50); 

После получения всех результатов в одном массиве можно использовать array_chunk.

см это: http://www.w3schools.com/php/func_array_chunk.asp

+0

К сожалению, нет результата, когда я попытался заменить путь к каталогу. – Matt

+0

Проверьте обновленный ответ. –

+0

Хотелось бы знать, что метод array_chunk существует, к сожалению, метод chunking не является результатом, который мне потребуется. Мне нужен пример json, который я предоставил, сохраненный в том же формате, но только прилагаемый к следующей записи. Это сделало бы Json [{0}, {1}, {2}, {3}, {4}] до 50. Тогда массив будет под ними. Это значит, что я могу одновременно импортировать 50 туров с помощью другого инструмента. – Matt

1

Я не знаю, почему именно вы хотели бы до объединить массивы вместо массива массивов, но я думаю, что что-то похожее на то, что вы ищете, может быть достигнуто посредством этого:

$path_to_your_files = '/path/to/your/json/files'; 
$result = array(); 
if ($handle = opendir($path_to_your_files)) { 
    while (false !== ($filename = readdir($handle))) { 
     if ($filename != "." && $filename != "..") { 
      $result = $result + json_decode(file_get_contents($path_to_your_files .'/'. $filename)); 
     } 
    } 
} 
var_dump(json_encode($result)); 

EDIT: добавлен считыватель файловой системы.

+0

Im сливающихся для импорта. Как я могу определить $ files для моих json-файлов, это будет как $ files = $ i. '.json'; и есть ли $ i внутри каждого цикла? – Matt

+0

@Matt вижу мое редактирование. –

+0

Извините @ Сергей-Видусов, казалось, в результате отобразил строку (2) «[]». – Matt

Смежные вопросы