【发布时间】:2018-05-04 01:58:19
【问题描述】:
对于我的 PHP 项目,我需要将排序后的数组打印到表格中。我们不能使用预制的排序函数来做到这一点,并被指示制作我们自己的排序函数。排序工作,但它不会按照我们需要的方式进入 html 表格格式。
<?php
$fileInput = "guestBook.txt";
$fileInputInData = file_get_contents($fileInput);
$array=explode("\n", $fileInputInData);
for($j = 0; $j < count($array); $j ++)
{
for($i = 0; $i < count($array)-1; $i ++)
{
if($array[$i] > $array[$i+1])
{
$temp = $array[$i+1];
$array[$i+1]=$array[$i];
$array[$i]=$temp;
}
}
}
echo "<th>Firstname</th><th>Lastname</th><th>Email Address</th>";
$arrayExplode = explode("\n", $array);
$k = 0;
foreach($array as $arrayOut)
{
$arrayExplodeTwo = explode(" ", $arrayExplode[$k]);
$firstName = $arrayExplodeTwo[0];
$lastName = $arrayExplodeTwo[1];
$email = $arrayExplodeTwo[2];
echo '<tr><td>'; echo $firstName; echo '</td></tr>';echo '<tr><td>';
echo $lastName; echo '</td></tr>';
echo '<tr><td>'; echo $email; echo '</td></tr>';
$k++;
}
?>
代码输出如下:
Firstname Lastname Email
代码不想将数据正确地打印到表中。在foreach循环中取出explode的具体分解输出到表格中。但是,这样做不会将它们分成表格的空间,每行只有一个框,其他 2 个框是空的。它将数据打印到表中的 Firstname 列中,每行都有数据。将数据格式化为特定的行会导致它在列中不打印任何内容,只是一个空表。
这是我的代码在将explode函数添加到代码底部附近的foreach循环之前如何输出到网络浏览器的。
Firstname Lastname Email Address
Anon emous anon@email.com
Matthew rando rando@gmail.com has signed in.
Matthew rando rando@gmail.com has signed in.
Matthew rando rando@gmail.com has signed in.
Person Anon Anon@emailaddr.com has signed in.
Person AnonyMouse AnonyMouse@emailaddr.com has signed in.
Person Name randomaddr@example.com has signed in.
Test Person thispersonisatest@fake.com has signed in.
Test PersonTwo thispersonisatestTwo@fake.com has signed in.
random name randomname@example.com
test personand testPersonAnd@testemail.com has signed in.
在foreach循环中添加explode函数后,打印结果如下:
Firstname Lastname Email Address
表格周期内没有数据,输出为空白表格。
提前感谢您的帮助。
【问题讨论】:
-
首先,注意到你有
'<tr><td>'; echo $firstName; echo '</td></tr>'。这是每行 1 个单元格,而不是每行 3 个单元格。应该是<tr><td></td><td></td><td></td></tr>。二、为什么是foreach($array as $arrayOut)而不是foreach($arrayExplode as $arrayOut)三、var_dump($arrayExplodeTwo)的结果是什么?
标签: php arrays sorting html-table explode