PHP код для разделения таблицы на основе значений столбца - PullRequest
0 голосов
/ 06 августа 2020

У меня есть файл csv, который нужно преобразовать в таблицу HTML на основе значений столбцов, и я должен поместить значения в отдельную таблицу на основе первого столбца csv. И я думаю, что проблема из-за '\ n' в первом столбце.

Итак, это примерно так:

csv Image

Here in Result column, in one row I have three values separated using comma (W,M,P). In the code I wrote it is considered as separate table headers . Can anyone please help me with this?

This is my code:

<?php 
    $csv="FinalResult.csv" ;
    $csvcontents=file_get_contents($csv);
    $csv_array = explode("\n", $csvcontents);
    
    $tables = [];
    foreach($csv_array as $key => $value) {
        if ($key == 0) {
            continue;
        }
        $line = explode(',', $value);
        if (array_key_exists($line[0], $tables)) {
            $tables[$line[0]][] = $line;
        } else {
            $tables[$line[0]] = [$line];
        }
    }
    
    foreach ($tables as $key => $value) {
        echo ' ' .$key. ' '; // YOUR TITLE (Team)
        echo "";
        echo '';
        foreach (explode(',', $csv_array[0]) as $keyHeader => $valueHeader) {
            if (in_array($keyHeader, [0, 1])) {
                continue;
            }
            echo "$valueHeader";
        }
        echo '';
        foreach ($value as $keyRow => $valueRow) {
            echo '';
                foreach ($valueRow as $keyValue => $valueValue) {
                    if (in_array($keyValue, [0, 1])) {
                        continue;
                    }
                    echo "$valueValue";
                }
            echo '';
        }
        echo '';
    }
    ?>

I refereed in stack overflow , but there they were giving only single values to a column and not providing multiple values .

But am getting output like this , Output

so it takes the value of Result column after '-' as a new heading , i tried but am not able to solve this , can anyone really help me in this matter .

Here is how my output should look like:

как мой результат должен выглядеть

Я отметил желтым, где все данные собираются в одном столбце

Это мой файл csv:

Team,Date,Opponent,Result
    MIN,May-03,UTA,a.b.c=d-e.f-g.h=log4j2-i.xml-j -k -a4j.k=tp_r-RR.xml -
    MIN,May-04,SEA,"L,Q,J"
    SAC,May-03,DAL,L
    SAC,May-04,TOR,W
    NYN,May-05,BAL,L
    NYN,May-07,MIA,W

1 Ответ

0 голосов
/ 06 августа 2020

Вот код

<table>
<?php 
    $csvValues=  array_map('str_getcsv', file('FinalResult.csv'));
    $counter = 0;

    // Header
    echo "<tr>";
    foreach($csvValues[0] as $headers){
        echo "<th>".$headers."</th>";
    }
    echo "</tr>";

    // Content
    foreach($csvValues as $values){
        echo "<tr>";

        if($counter >0){
            foreach($values as $data){
                echo "<td>".$data."</td>";
            }
        }   
        
        echo "</tr>";
        $counter++; 
    }

?>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...