不对齐版本
<?php
// 九九乘法表
for ($i = 1; $i <= 9; $i++) {
for ($j = 1; $j <= $i; $j++) {
// 输出乘法表达式和结果,使用 endspace 进行格式化以便对齐
echo "$j x $i = " . ($j * $i) . "\t";
}
// 输出换行符,开始新的一行
echo "\n";
}
?>
对齐版本
<?php
// 九九乘法表,精确对齐版本,使用预计算的每行最大宽度
$maxWidthPerRow = 0;
// 预先计算每行的最大宽度(这里我们简化为基于9x9的结果加上表达式和额外空格的宽度)
$exprTemplate = '%dx%d=';
$maxResult = 9 * 9;
$maxWidthPerRow = strlen(sprintf($exprTemplate, 9, 9)) + strlen((string)$maxResult) + 3; // +3 是为了表达式、结果和它们之间的空格
for ($i = 1; $i <= 9; $i++) {
$line = '';
for ($j = 1; $j <= $i; $j++) {
$expr = sprintf($exprTemplate, $j, $i);
$result = $j * $i;
// 使用 str_pad 对条目进行格式化,确保它们对齐
$line .= str_pad($expr . ' ' . $result, $maxWidthPerRow, ' ', STR_PAD_RIGHT);
}
// 输出整行,并换行
echo rtrim($line) . "\n"; // 在这里rtrim实际上不会去除任何空格,因为我们是用str_pad填充到固定宽度的
}
?>
我的个人PHP项目:
PHP搜索引擎 WindSearch: https://github.com/rock365/windsearch
WindSearch在线开发文档:https://rock365.github.io/ 偶尔无法访问,多刷新几次就行
697

被折叠的 条评论
为什么被折叠?



