Как я могу преобразовать этот текст в нужный формат массива и экспортировать в CSV?

Я извлек этот текст из PDF с помощью pdftotext инструмент

Пожалуйста, найдите ниже текстовую структуру

stage    title1    title2  title3  title4
I        value1    value2  value3
II                         value5  value6

stage    Other1      Other2     Other3     Other4
I        otherval1   otherval2  otherval3  otherval4

Теперь я хочу экспортировать этот текст в формате CSV, используя соответствующие столбцы и заголовки, или построить массив таким образом.

[
"category" => "title1",
"score"    => "value1",
],
[
"category" => "title2",
"score"    => "value2",
],
[
"category" => "title3",
"score"    => "value3"],
// unable to to do this
[
"category" => "title3",
"score"    => "value5"],
[
"category" => "title4",
"score"    => "value6",
],

.
.
// so on

Теперь проблема в том,

  • Значения столбцов на I этапе и II этапе являются необязательными, но любой из
    строки будут содержать как минимум одно значение для каждого столбца
  • Стадия II ряда необязательна, может существовать или нет
  • Если строка этапа II существует, то по крайней мере одно значение столбца существует в
    строка

Проблема, с которой я сталкиваюсь, состоит в том, как я могу нанести на карту

  • значение 5 в название 3
  • значение6 в титл4

Вот мой код парсера (PHP)

$rows = explode("\n", $pdfExtractedText);
$rows = array_values(array_filter($rows));

$categories = array_values(array_filter(explode(" ", $rows[7])));
$stage1Scores = array_values(array_filter(explode(" ", $rows[8])));
$stage2Scores = array_values(array_filter(explode(" ", $rows[9])));
var_dump($categories);
var_dump($stage1Scores);
var_dump($stage2Scores);

ВЫХОД:

// categories
array:13 [
0 => "stage"1 => "title1"2 => "title2"3 => "title3"4 => "title4"]

//values - Index preserved so that I can map with categories
array:14 [
0 => "I"1 => "value1"2 => "value2"3 => "value3"4 => "value4"]

// index not preserved :(
array:2 [
0 => "II"1 => "value5",
2 => "value6"]

0

Решение

Тогда попробуй это,

$csv = "";

$csv .= implode("," , $categories) . PHP_EOL;
$csv .= implode("," , $stage1scores) . PHP_EOL;
$csv .= implode("," , $stage2scores) . PHP_EOL;

Затем запишите это в файл.

0

Другие решения

Других решений пока нет …