Форматирование CSV для импорта.

  • Автор темы Sn0wBreeze
  • 43
  • Обновлено
  • 18, May 2024
  • #1
Всем здравствуйте.

Искал небольшую помощь.

У меня есть файл CSV, который выглядит так:

,,,,,,,,,

,,,,,,,,,

«UNIT A» «1.01.2016» по «17.01.2016», 0 (уровень активности)»,,,,,,,,,

Описание, количество, вес, стоимость, дневное количество, дневная масса, дневная масса, количество C, масса C, Cst

UNIT A,"6193","5268 фунтов",$ 0,00364,29310 фунтов,$0,00,Н/Д,Н/Д,Н/Д

1010 ,"1,356","1,464 фунта",$ 0,00,79,76,86 фунта,$ 0,00,Н/Д,Н/Д,Н/Д

1050 ,119,95 фунтов,$ 0,00,7,00,6 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

1210 ,449,534 фунта,$ 0,00,26,41,31 фунта,$ 0,00,Н/Д,Н/Д,Н/Д

1310 597 131 фунт,$ 0,00,35,12,8 фунт,$ 0,00,Н/Д,Н/Д,Н/Д

1810 ,"1,499",125 фунтов,$ 0,00,88,18,7 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

1710 ,"1050",483 фунта,$0,00,61,76,28 фунта,$0,00,Н/Д,Н/Д,Н/Д

1510,167,334 фунта,$0,00,9,82,20 фунта,$0,00,Н/Д,Н/Д,Н/Д

1410 ,471,"1696 фунтов",$ 0,00,27,71,100 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

2310 ,369,258 фунтов,$ 0,00,21,71,15 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

2320,116,147 фунтов,$0,00,6,82,9 фунтов,$0,00,Н/Д,Н/Д,Н/Д

,,,,,,,,,

,,,,,,,,,

"UNIT B""01.01.2016"" до "17.01.2016"", 0 (уровень активности)",,,,,,,,,

Описание, количество, вес, стоимость, дневное количество, дневная масса, дневная масса, количество C, масса C, масса Cst

БЛОК B,"6193","5268 фунтов",$ 0,00364,29310 фунтов,$0,00,Н/Д,Н/Д,Н/Д

1010 ,"1,356","1,464 фунта",$ 0,00,79,76,86 фунта,$ 0,00,Н/Д,Н/Д,Н/Д

1050 ,119,95 фунтов,$ 0,00,7,00,6 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

1210 ,449,534 фунта,$ 0,00,26,41,31 фунта,$ 0,00,Н/Д,Н/Д,Н/Д

1310,597,131 фунтов,$ 0,00,35,12,8 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

1810 ,"1,499",125 фунтов,$ 0,00,88,18,7 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

1710 ,"1050",483 фунта,$0,00,61,76,28 фунта,$0,00,Н/Д,Н/Д,Н/Д

1510,167,334 фунта,$0,00,9,82,20 фунта,$0,00,Н/Д,Н/Д,Н/Д

1410 ,471,"1696 фунтов",$ 0,00,27,71,100 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

2310 ,369,258 фунтов,$ 0,00,21,71,15 фунтов,$ 0,00,Н/Д,Н/Д,Н/Д

2320,116,147 фунтов,$0,00,6,82,9 фунтов,$0,00,Н/Д,Н/Д,Н/Д

и так далее....

Я хочу отформатировать эти данные примерно так:

«UNITID», «PRODUCTID», «КОЛИЧЕСТВО»

Для каждого элемента, указанного в этом блоке единиц.

Таким образом, в основном придется искать:

,,,,,,,,,

,,,,,,,,,

Знать, что это новый агрегат.

Затем возьмите первый столбец третьей строки внутри блока «Unit X» и используйте его как UNITID, который будет использоваться для каждой последующей строки для идентификации единицы, а затем просто возьмите первый и второй столбец каждой строки для столбцы prodid и qty.

Любая помощь будет принята с благодарностью.

Спасибо!

Sn0wBreeze


Рег
05 Jul, 2012

Тем
1

Постов
2

Баллов
12
  • 19, May 2024
  • #2
Я бы не стал вносить какие-либо изменения в файл просто импортируйте его, а затем управляйте данными из вашего PHP-скрипта. Нет необходимости создавать дополнительные шаги. видеть: http://php.net/manual/en/function.str-getcsv.php
 

Tracy


Рег
29 Oct, 2012

Тем
0

Постов
4

Баллов
4
  • 21, May 2024
  • #3
Примечание. В следующих столбцах индексация начинается с 0, то есть первый столбец будет 0, второй — 1, третий — 2 и так далее. Если вам нужны выборочные столбцы, используйте этот код:
 
$c = fopen("myfile.csv", "rb");
while (($row = fgetcsv($c, 2048) !== FALSE)
{

print $row[0] ."<br/>"; //0 = first column. print first column of each row

//and so on check all columns suiting your needs and

//insert to database
}
fclose($c);
Код (разметка): Надеюсь, это поможет. Будь здоров.....
 

razboy


Рег
22 Aug, 2014

Тем
0

Постов
2

Баллов
2
  • 10, Jun 2024
  • #4
@sarahk Я хочу проанализировать нужные мне данные, так как будет создан еще один массив для импорта в БД. Я просто подумал, что функция, которая будет проходить через каждый блок, а затем добавлять данные, которые я ищу, в массив, я думал, что что-то подобное будет намного проще.

К сожалению, мои навыки программирования не соответствуют моим навыкам мышления.
 

hALf_MidDLe1


Рег
01 Jan, 2011

Тем
1

Постов
3

Баллов
13
Тем
49554
Комментарии
57426
Опыт
552966

Интересно