我想使用foreach循环遍历php scandir函数的结果,然后显示文件名和然后大小,但是当我使用代码时:
$scan = scandir("/home/foo");
foreach ($scan as $value) {
echo "$value" . "<br>" . filesize("/home/foo/$value") . " ";
}
我最终得到的是filesize值,然后是$ value,如下所示:
3337 Desktop
4096 Downloads
4096 Mail
4096 Scripts
这是为什么?以及如何使其按照与代码相同的顺序进行格式化,即。文件名,然后是文件大小?
答案 0 :(得分:2)
您在值和文件大小之间有换行符(<br>
),但在文件大小之后却没有。
因此,文件大小将在新行上显示为第一个,并且下一个元素的名称将显示在它旁边。所以它实际上是以正确的顺序输出东西;它只是在打印输出中看起来不那样。
解决方案:
交换字符串的"<br>"
和" "
部分。
echo "$value" . " " . filesize("/home/foo/$value") . "<br>";
答案 1 :(得分:1)
将<br>
移到最后,这是换行符并开始换行。