我在php中创建一个三角形时遇到问题。这是我的代码。
for($i = 0; $i <= $input; $i++) {
for($j = 1; $j <= $i; $j++) {
echo " $char  ";
}
echo "<br>";
}
结果就是这样。
*
* *
* * *
* * * *
* * * * *
但我想做的就是这个。
*
* *
* * *
* * * *
* * * * *
我的代码应该改变什么?
答案 0 :(得分:1)
有一个本机PHP函数str_pad,您可以在其中说明如何在一个方向上填充字符串:STR_PAD_RIGHT
,STR_PAD_BOTH
,STR_PAD_LEFT
<?php
$char = '*'; // the character to print
$input = 10; // number of rows
$padding = STR_PAD_BOTH; // STR_PAD_RIGHT, STR_PAD_BOTH , STR_PAD_LEFT
for($i = 0; $i <= $input; $i++) {
$stars = '';
for($j = 1; $j <= $i; $j++) {
$stars .= " $char";
}
echo PHP_EOL . str_pad($stars, $input*2, ' ', $padding);
}
此处使用了STR_PAD_BOTH
:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
这里STR_PAD_LEFT
:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
* * * * * * * * * *
答案 1 :(得分:0)
您必须确保空间打印的次数正确。
首先,我们将循环遍历所有空格,从1到$ input - $ i。在这里我们将打印出白色空间。然后我们将遍历astricks $ i次的数量。
注意:我们使用&amp; nbsp两次与astrick对齐
以下是代码:
for($i = 0; $i <= $input; $i++) {
for($j = 1; $j <= $input - $i; $j++) {
echo "   ";
}
for($j = 1; $j <= $i; $j++) {
echo " $char";
}
echo "<br>";
}
答案 2 :(得分:0)
分别创建主要字符串和“填充”字符串,然后回显连接结果:
$users = DB::connection('mysql2')->select(...);