Ситуация следующая: есть большой тесктовый файл (CSV).
В нем 24 млн строк, файл весит где-то 700 мб
Строки выглядят примерно так:
article1;group1;price
article1;group2;price
article1;group3;price
...
article2;group1;price
article2;group2;price
article2;group3;price
...
articleN;groupM;price
на выходе нужен массив, который будет выглядеть примерно так:
array(
'article1' => array(
'group1' => 'price',
'group2' => 'price',
'group3' => 'price',
),
'article2' => array(
'group1' => 'price',
'group2' => 'price',
'group3' => 'price',
),
)
Т.е. как бы сгруппировать по артиклям.
Проблема: артикли и группы идут не по-порядку.
что было сделано до этого:
- file(path-to-file)
- fopen(file);while(...){ $data = fgetscv(); allData[] = $data}
- SplFixedArray
пока все, что было испробавано, вываливается с ошибкой Fatal error: Allowed memory size of .....
Может у кого-нить есть идеи, как такое победить?
_____________
Свои мозги еще никто не отменял.
Телепатов нету.