将字符串拆分 2 次并将其放入 table

Split a string 2 times and put it in a table

好的,我有一个字符串需要拆分 2 次。 第一次用空格,第二次用逗号。所以我可以把它放在 table.

我设法用空格拆分字符串并将其放在 table 的第一列中,但我很难第二次拆分它并将值放在右列中。

这是我已经得到的片段:

<?php for ($i = 0; $i < sizeof($volumes); $i++) {
    echo "<tr><td>" . $volumes[$i] . "</td></tr>";
} ?>

渲染 table 行时,您应该用逗号分隔每个卷。我不完全理解所有检索到的行或您的代码背后的逻辑是什么,但这一堆代码应该可以满足您的需求:

<?php 
    for ($i = 0; $i < sizeof($volumes); $i++) {
        echo '<tr>';
        $volumeData = explode(',', $volumes[$i]);
        foreach ($volumeData as $volume) {
            echo '<td>' . $volume . '</td>';
        }
        echo '</tr>';
    }
?>

您确定您提供的字符串是准确的吗?我认为 SystemReserved 的大小和下一个驱动器的标签之间缺少一个逗号。如果是这样的话——代码应该是这样的: 首先我们 'explode' 字符串创建一个数组,然后使用数组块将其拆分为数组,每个数组有 7 个条目。然后渲染它:

$string = 'L,Logs,NTFS,Healthy,OK,9.73,9.77 ,SystemReserved,NTFS,Healthy,OK,0.16,0.49 ,C,LocalDisk,NTFS,Healthy,OK,18.19,29.74';
$array = explode(',', $string);
$results = array_chunk($array, 7, true);

?>

<table id="tbl_basic_volumes">
    <tr>
        <th>Buchstabe:</th>
        <th>Name:</th>
        <th>Filesystem:</th>
        <th>Health Status:</th>
        <th>Operational Status:</th>
        <th>Freier Speicherplatz:</th>
        <th>Gesamter Speicherplatz:</th>
    </tr>
    <?php
        foreach ($results as $result) {
            echo '<tr>';
            foreach ($result as $entry) {
                echo '<td>'.$entry.'</td>';
            }
            echo '</tr>';
        }
    ?>
</table>

您可以使用 implode.

退出内部 foreach 循环
$str = "L,Logs,NTFS,Healthy,OK,9.73,9.77 ,SystemReserved,NTFS,Healthy,OK,0.16,0.49 C,LocalDisk,NTFS,Healthy,OK,18.19,29.74";
$rows = explode(' ', $str);
foreach ($rows as $row) {
  echo '<tr><td>' . implode('</td><td>', explode(',', $row)) . '</td></tr>';
}

甚至用 </td><td> 替换逗号也可以:

$str = "L,Logs,NTFS,Healthy,OK,9.73,9.77 ,SystemReserved,NTFS,Healthy,OK,0.16,0.49 C,LocalDisk,NTFS,Healthy,OK,18.19,29.74";
$rows = explode(' ', $str);
foreach ($rows as $row) {
  echo '<tr><td>' . str_replace(',', '</td><td>', $row) . '</td></tr>';
}