将字符串拆分 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>';
}
好的,我有一个字符串需要拆分 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
.
$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>';
}