php实现菱形
PHP实现菱形的方法
使用PHP生成菱形可以通过循环结构实现,关键在于控制空格和星号的输出数量。以下是两种常见实现方式:
方法一:对称循环实现
<?php
$n = 5; // 菱形行数(奇数)
for ($i = 1; $i <= $n; $i++) {
$spaces = abs($n - 2 * $i + 1) / 2;
echo str_repeat(" ", $spaces) . str_repeat("*", $n - 2 * $spaces) . "\n";
}
?>
方法二:分上下两部分实现
<?php
$size = 5; // 菱形高度(奇数)
// 上半部分
for ($i = 1; $i <= $size; $i += 2) {
echo str_repeat(" ", ($size - $i) / 2) . str_repeat("*", $i) . "\n";
}
// 下半部分
for ($i = $size - 2; $i >= 1; $i -= 2) {
echo str_repeat(" ", ($size - $i) / 2) . str_repeat("*", $i) . "\n";
}
?>
参数说明
$n或$size控制菱形的大小,应为奇数str_repeat()函数用于重复输出字符- 上半部分星号数量递增,下半部分递减
- 空格数量根据当前行数动态计算
输出示例(当$n=5时)
*
*
*
*
*
动态大小实现
<?php
function printDiamond($rows) {
if ($rows % 2 == 0) $rows++; // 确保为奇数
$mid = ($rows + 1) / 2;
for ($i = 1; $i <= $rows; $i++) {
$diff = abs($mid - $i);
echo str_repeat(" ", $diff) . str_repeat("*", $rows - 2 * $diff) . "\n";
}
}
printDiamond(7); // 调用函数
?>
以上代码均可通过调整参数值改变菱形大小,核心逻辑是通过数学计算确定每行的空格和星号数量。







