Tabelle erstellen mit foreach, PHP

123user123

Mitglied
Guten abend,

ich habe hier folgendes Array:
Javascript:
Array

(
    [0] => Array
        (
            [Jahr] => 2014
            [Kosten] => 3720
        )

    [1] => Array
        (
            [Jahr] => 2015
            [Kosten] => 3165
        )

    [2] => Array
        (
            [Jahr] => 2016
            [Kosten] => 1624
        )

    [3] => Array
        (
            [Jahr] => 2017
            [Kosten] => 1805
        )

    [4] => Array
        (
            [Jahr] => 2018
            [Kosten] => 2487
        )
)
Den Inhalt von diesem Array würde ich gerne in eine tabelle ausgeben die folgendermaßen aussieht:

Code:
Unternehmen |      Wert      |   Jahr  |  Kosten

   Intel          Revenue        2014     3720
                                 2015     3165
                                 2016     1624
                                 2017     1805
                                 2018     2487

Bis jetzt habe ich es geschafft nur die erste Zeile auszugeben:
PHP:
 echo '       
        <div style="table;th;td">
            <table align="center">
                <tr>
                    <th align="center">Company</th>
                    <th align="center">Value</th>
                    <th align="center">Year</th>
                    <th align="center">In Dollar</th>
                </tr>
                <tr>
                    <td align="center">'.$Ticker_Name.'</td>
                    <td align="center">'.$Value.'</td>
            ';
        foreach($costs as $key=>$value)
        {
            echo '<td align="center">'.$value['Jahr'].'</td>';
            echo '<td align="center">'.$value['Kosten'].'</td>';
            echo '</tr>';
            echo '</table>';
        }

Mein Problem ist es die restlichen jahre mit den entsprechenden Werten auszugeben, da ich nicht ganz verstehe wie ich auf diese werte zugreifen kann.
 
Lösung
PS: Ich sehe gerade, dass Du Unternehmen und Wert nur in der ersten Zeile ausgeben willst. Das kannst Du folgender Maßen erreichen:
Code:
        $name = $Ticker_Name;
        $val = $Value;
        foreach($costs as $key=>$value)
        {
            echo '<tr>';
            echo '<td align="center">'.$name.'</td>';
            echo '<td align="center">'.$val.'</td>
            echo '<td align="center">'.$value['Jahr'].'</td>';
            echo '<td align="center">'.$value['Kosten'].'</td>';
            echo '</tr>';
            $name = '';
            $val = '';
        }
Du musst das Erzeugen der Zeile in das foreach hinein nehmen und das Abschliessen der Tabelle heraus:
Code:
 echo '       
        <div style="table;th;td">
            <table align="center">
                <tr>
                    <th align="center">Company</th>
                    <th align="center">Value</th>
                    <th align="center">Year</th>
                    <th align="center">In Dollar</th>
                </tr>
            ';
        foreach($costs as $key=>$value)
        {
            echo '<tr>';
            echo '<td align="center">'.$Ticker_Name.'</td>';
            echo '<td align="center">'.$Value.'</td>
            echo '<td align="center">'.$value['Jahr'].'</td>';
            echo '<td align="center">'.$value['Kosten'].'</td>';
            echo '</tr>';
        }
        echo '</table>';
 
PS: Ich sehe gerade, dass Du Unternehmen und Wert nur in der ersten Zeile ausgeben willst. Das kannst Du folgender Maßen erreichen:
Code:
        $name = $Ticker_Name;
        $val = $Value;
        foreach($costs as $key=>$value)
        {
            echo '<tr>';
            echo '<td align="center">'.$name.'</td>';
            echo '<td align="center">'.$val.'</td>
            echo '<td align="center">'.$value['Jahr'].'</td>';
            echo '<td align="center">'.$value['Kosten'].'</td>';
            echo '</tr>';
            $name = '';
            $val = '';
        }
 
Lösung
Zurück