Есть такая функция
Код тут
protected function prepare_uploaded_file($resourcePath, $id){
$response = new stdClass;
$response->error = false;
$products_count = 10000000;
$column_delimiter = ';';
$columns = array();
// Определяем колонки из первой строки файла
$f = fopen($resourcePath, 'r');
$columns = fgetcsv($f, 0, $column_delimiter);
$columns = array_map(array($this,'convert'), $columns);
$response->columns = $columns;
// Массив импортированных товаров
$imported_items = array();
// Превью товаров
$preview_items = array();
// Проходимся по строкам, пока не конец файла
// или пока не импортировано достаточно строк для одного запроса
for($k=0; !feof($f) && $k<$products_count; $k++)
{
// Читаем строку
$line = fgetcsv($f, 0, $column_delimiter);
$line = array_map(array($this,'convert'), $line);
$product = $preview_product = null;
if(is_array($line)){
// Проходимся по колонкам строки
foreach($columns as $i=>$col)
{
if(isset($line[$i]) && !empty($line) && !empty($col)){
$product[$i] = $line[$i];
}
}
// Импортируем этот товар
$imported_items[] = $product;
// Создаем превью товара
if($k<100){
foreach($columns as $i=>$col)
{
if(isset($line[$i]) && !empty($line) && !empty($col))
$preview_product[$i] = $line[$i];
}
$preview_items[] = $preview_product;
}
}
}
file_put_contents(sprintf(IMPORT_FILE, $id), json_encode($imported_items, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
file_put_contents(sprintf(PREVIEW_FILE, $id), json_encode($preview_items, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
fclose($f);
return $response;
}
public function convert($str)
{
return iconv("Windows-1251", "UTF-8", $str);
}
С ее помощью я разбираю файл csv который по итогу нужен мне в json. На выходе получаю такой файл json с содержанием
[
[
"Monthly Monitor индикатор PH мочи для кошек 453 г",
"Ветеринарное оборудование и материалы -\/Диагностические средства -",
"10718"
],
[
"KRUUSE катетер стерильный для кошек 1,0х130 мм со стилетом, 1 шт",
"Ветеринарное оборудование и материалы -\/Расходные материалы -",
"273453"
]
]
а мне требуется
[
{
"0": "Monthly Monitor индикатор PH мочи для кошек 453 г",
"1": "Ветеринарное оборудование и материалы -\/Диагностические средства -",
"2": "10718"
},
{
"0": "KRUUSE катетер стерильный для кошек 1,0х130 мм со стилетом, 1 шт",
"1": "Ветеринарное оборудование и материалы -\/Расходные материалы -",
"2": "273453"
}
]
Не могу понять где ошибся