があなたの問題に私の解決策です。
9より大きい数字を使用している可能性があるため、最善の解決策ではありません。
しかし、要点は、必要に応じて作業できる解決策の出発点であるということです。
array
を使用して、印刷する番号を保存することができます。 数字がarray
にあるので、すべて数字が印刷されるように、foreach
ループを使用することができます。
PHPのstr_repeat()
関数を使用すると、数字の各文字列の間に挿入するスペースの数を把握できます。 以下の解決策は、連想配列ではなくデフォルトの数値標識を持つ配列を使用する場合にのみ機能します。 str_repeat()
関数の計算の一部で変数$key
が使用されているためです。 $key
変数を使用したくない場合は、それを変更する方法を理解できるはずです。
数字を逆順にするときは、既に文字列に格納されているので、PHPのstrrev()
関数を使用して別の変数に格納することができます。
最後に、行末を改行してドキュメントに行を印刷するだけで済みます。
str_repeat()
関数は、HTMLエンティティ
を繰り返しています。 これは、ブラウザが通常の空白を1文字に圧縮するためです。
また、フォントをmonospace
に変更するためにブロックstyle
を含めました。 これは、すべての番号が確実に一致するようにするためです。
<style>
html, body {
font: 1em monospace;
}
</style>
<?php
$numbers = array(1, 2, 3, 4, 5);
$numbers_length = count($numbers);
$print_numbers = '';
$print_numbers_rev = '';
foreach($numbers as $key => $value) {
$spaces = str_repeat(' ', ($numbers_length - ($key + 1)) * 2);
$print_numbers .= $value;
$print_numbers_rev = strrev($print_numbers);
echo $print_numbers . $spaces . $print_numbers_rev . '<br />';
}
編集:配列のない
ソリューション:
<style>
html, body {
font: 1em monospace;
}
</style>
<?php
$numbers = 9;
$numbers_length = $numbers + 1;
$print_numbers = '';
$print_numbers_rev = '';
for($i = 0; $i <= $numbers; ++$i) {
$spaces = str_repeat(' ', ($numbers_length - ($i + 1)) * 2);
$print_numbers .= $i;
$print_numbers_rev = strrev($print_numbers);
echo $print_numbers . $spaces . $print_numbers_rev . '<br />';
}
この宿題ですか?これまで何をやっていますか? – Amadan