对于我的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循环中爆炸的特定分解将其输出到表格中 . 但是,这样做不会将它们分解到表的空间中,每行只有一个盒子,而另外两个盒子是空的 . 它将数据打印到Firstname列中的所有表中,每行包含数据 . 将数据格式化为特定行会导致它不会在列中打印任何内容,只会在空表中打印 .
在将爆炸函数添加到代码底部附近的foreach循环之前,以下是我的代码输出到Web浏览器的方式 .
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
在表期间没有数据,输出为空白表 .
预先感谢您的任何帮助 .
2 回答
我对你的guestBook.txt文件做了一些假设,并得到了以下一些代码 .
关于原始代码的一些评论:
$array=explode("\n", $fileInputInData);
和$arrayExplode = explode("\n", $array);
两次做同样的事情并抛出错误 .
VS
希望这有帮助!
与@ dchao5建议的解决方案几乎相同 . 他提交时正在努力 . 主要区别在于使用php内置的模板语法,因此您不会在业务逻辑中混合使用html代码 . 首先进行处理,生成页面需要渲染的元素,然后使用模板语法在页面中渲染它们总是更干净 . 使维护更加清晰 .