0

2番目の配列をテーブルに表示するのに問題があります..誰か助けてもらえますか..

<?php
    $logdate = "20140918";
    $fileloc = $logdate."TPL.log";

    if (file_exists($fileloc)) {
        $result = array();
        $file = explode("\n", file_get_contents($fileloc));
        $rowFile = count($file);

?>
            <table cellpadding="5" cellspacing="0" width="100%" border="1">
                <thead>
                    <tr>
                        <th>#</th>
                        <th>Transaction ID</th>
                        <th>X</th>
                    </tr>
                </thead>
                <tbody>

<?php
        $x=1;
        foreach ( $file as $content ) {         
            $result[] = array_filter(array_map("trim", explode(";", $content)));            
?>
                    <tr>
                        <td><?=$x?></td>
                        <td><?=$result[$x][0]?></td>
                        <td><?=$result[$x][9]?></td>
                    </tr>

<?php
                $x++;
        }
?>
                </tbody>
            </table>
<?php
    } else {
        echo "File x exists";
    }
?> 

実際には、レコードをデータベースに挿入したいのですが、最初にテーブルに表示したいのです。分解結果を列に表示する方法..

4

2 に答える 2

1

あなたのコードには重大な問題があります。一度だけ、最初の を閉じることはありませんif0または、配列内のインデックスがではなくで始まる1ため、は必要ありませ$x。そして、私はまた、何をしなければならない<?=$x?>のか、あなたがこれで何を意味しているのか理解していません. これを試して:

<?php
    $logdate = "20140918";
    $fileloc = $logdate."TPL.log";

    if (file_exists($fileloc)) {
        $result = array();
        $file = explode("\n", file_get_contents($fileloc));
        $rowFile = count($file);

            $output = '<table cellpadding="5" cellspacing="0" width="100%" border="1">
                <thead>
                    <tr>
                        <th>#</th>
                        <th>Transaction ID</th>
                        <th>X</th>
                    </tr>
                </thead>
                <tbody>';

        foreach ( $file as $key => $content ) {         
            $result[] = array_filter(array_map("trim", explode(";", $content)));

            $output .= '<tr>
                        <td>'.($key+1).'</td>
                        <td>'.$result[$key][0].'</td>
                        <td>'.$result[$key][9].'</td>
                    </tr>';
        }

        $output .= '</tbody>
            </table>';

        } else {
            echo "File x exists";
        }
    }

echo $output;
?>

独自のコードの保守により多くの時間を費やすなら、それはおそらく良いことです。

于 2014-12-03T04:45:52.957 に答える
-1

$x=1;forループに対してのみ機能します。

私はそれnext($file);があなたが望むことをすると信じています。

于 2014-12-03T04:18:17.077 に答える