質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

904閲覧

PHPの複数のforの使い方が分かりません

jackyf

総合スコア1

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/05/07 14:51

PHPの初心者です。

PHPの複数のforの使い方が分かりません( ;∀;)


23
345
4567
56789
と書きたいのですが、どうにもわかりません。

PHP

1<?php 2for($i=1; $i<=10; $i++){ 3 for($j=1; $j<=$i; $j++){ 4 } 5 for($k=1; $k<=$j; $k++){ 6 echo "$i"; 7 } 8 echo "<br>"; 9} 10?>

ここまで書いたのですが、このようになります。

11
222
3333
44444
555555
6666666
77777777
888888888
9999999999
1010101010101010101010

1行目は1桁にしたいのと2行目から増やしたいのですが、どうにもわかりません。
初歩的なことだと思いますが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

意図的かどうかは別にして、面白いことやってますね。
途中で $j を表示してやると、原因が分かります。

php

1<?php 2for($i=1; $i<=10; $i++){ 3 for($j=1; $j<=$i; $j++){ 4 } 5 echo $j; 6 for($k=1; $k<=$j; $k++){ 7 echo "$i"; 8 } 9 echo "<br>"; 10} 11?>
211 3222 43333 544444 6555555 76666666 877777777 9888888888 109999999999 111010101010101010101010

ループを抜けた後もカウント用の変数が生きていることを利用したコードになっているので、一応以下のようにすれば意図通りに動きます。

diff

1- for($j=1; $j<=$i; $j++){ 2+ for($j=1; $j<$i; $j++){

ただ、普通はこんなコードは書きません。

要件間違って読んでました。。。

同じ数字のピラミッドが作りたいのだと勘違いしてました。申し訳ない。
修正加えても、意図通りの出力にはならないですね^^;

一応、for を使用した別解を書いておきます。

php

1<?php 2for($i=1; $i<=10; $i++){ 3 for($j=1; $j<=$i; $j++){ 4 echo $i+$j-1; 5 } 6 echo "<br>"; 7}

$i が縦の始まりの数、$j が並べる数です。

投稿2021/05/07 21:32

編集2021/05/08 20:40
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jackyf

2021/05/08 12:04

ありがとうございます。
guest

0

ベストアンサー

これを参考にがんばってください

php

1<?php 2$x = 10; 3foreach (range(1,$x) as $hoge) { 4 $piyo = $hoge * 2 - 1; 5 foreach (range($hoge,$piyo) as $fuga) { 6 echo $fuga . " "; 7 } 8 echo "\n"; 9} 10?>

投稿2021/05/07 21:12

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jackyf

2021/05/08 12:03

ありがとうございます! <br>をいれたら完成しました! 感謝! 内容を勉強させて頂きます。
guest

0

プログラミング以前の問題として、規則性が発見できないと言うことですかね?

各行は、$i から始めて、$i*2-1 までの数字を順番に書くだけです。

各数字の間に空白も書くのでしょう。

投稿2021/05/07 15:23

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jackyf

2021/05/07 15:34

早速のご回答に感謝です。  回答者様の仰る通りで、規則性が分かっていないと思います。 なので、ご回答の意味が分かりません。 具体的にどのようにしたらいいのでしょうか?
otn

2021/05/07 15:45

質問に書いてあるプログラムが書ける人なら、 > 各行は、$i から始めて、$i*2-1 までの数字を順番に書くだけです。 をプログラムに出来ると思ったのですが。
jackyf

2021/05/08 12:04

解決しました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問