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

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

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

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

Q&A

解決済

3回答

346閲覧

PHP 学習における配列内の要素の足し算

daiku0919

総合スコア21

PHP

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

0グッド

0クリップ

投稿2024/12/26 22:28

実現したいこと

配列内($number_box)の合計値をfor文、foreach文を使用して計算し、以下の表のような合計を表で出力したいです

example.
──────────────────────────────────
|33|52| 9| 26| 10| 23| 96| 22|
──────────────────────────────────
合計|33|85|94|120|130|153|249|271|
──────────────────────────────────

発生している問題・分からないこと

配列の合計値を出力するにはarray_sumを使うと思いますが、 for文で配列内の要素を取り出し、その要素を一つずつ足していくにはどうしたら良いか分かりません。

該当のソースコード

index.php

1class sum { 2 public function array() { 3 echo '<br><br>------Q2------<br><br>'; 4 $number_box = [33, 52, 9, 26, 10, 23, 96, 22]; 5 //ここに処理を記述 6 echo "<table>"; 7 for($i = 1; $i < 2; $i++) { 8 if($i == 1) { 9 echo "<td>". "</td>"; 10 foreach($number_box as $val) { 11 echo "<td>" . $val . "</td>"; 12 } 13 } 14 echo "<tr>"; 15 echo "<td>合計</td>"; 16 for($j = 0; $j < count($number_box); $j++) { 17 echo "<td>" . array_sum($number_box) . "</td>"; 18 } 19 echo "</tr>"; 20 } 21 echo "</table>"; 22 } 23} 24?> 25 26<!DOCTYPE html> 27<html lang='ja'> 28<head> 29 <meta charset='utf-8'> 30 <title>PHP loop</title> 31</head> 32<body> 33 <style> 34 table, tr, td { 35 border: 1px #000000 solid; 36 } 37 </style> 38 39 <!-- Q2関数を出力 --> 40 <?php 41 $all_sum = new sum; 42 $all_sum->array(); 43 ?> 44

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

teratailやGoogle等で検索したのですが、要素ない全ての合計値の質問ばかりで同様の質問がなかったので
質問しました。どなたかご教授お願いいたします。

補足

特になし

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

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

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

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

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

maisumakun

2024/12/26 23:56

> for文で配列内の要素を取り出し、その要素を一つずつ足していくにはどうしたら良いか分かりません。 文字通り、「配列内の要素を取り出し、1つずつ足す」コードを実装していけばいいと思うのですが、「配列内の要素を取り出す」のと「1つずつ足す」のと、どちらがわからないのでしょうか。
daiku0919

2024/12/27 06:15

コメントありがとうございます。 「1つずつ足す」 こちらが現状解決できないです!
guest

回答3

0

ベストアンサー

array_sumを使うならarray_sliceで配列を調整するとよいでしょう
ループを1回で済ますなら変数を調整してください

PHP

1<?PHP 2class sum { 3 public function array() { 4 $number_box = [33, 52, 9, 26, 10, 23, 96, 22]; 5 $sum=0; 6 $ret=""; 7 //ここに処理を記述 8 $ret.="<table border>\n"; 9 $tr1=$tr2=""; 10 $tr1.= "<td>&nbsp;</td>\n"; 11 $tr2.= "<td>合計</td>\n"; 12 for($i=0;$i<count($number_box);$i++) { 13 $tr1.= "<td>" . $number_box[$i] . "</td>\n"; 14 $tr2.= "<td>" . array_sum(array_slice($number_box,0,$i+1)) . "</td>\n"; 15 } 16 $ret.="<tr>\n".$tr1."</tr>\n<tr>\n".$tr2."</tr>\n"; 17 $ret.= "</table>"; 18 echo $ret; 19 } 20} 21 22$all_sum = new sum; 23$all_sum->array();

投稿2024/12/27 03:24

yambejp

総合スコア117605

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

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

daiku0919

2024/12/27 06:16

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

0

ループ中に、現在の値を記憶しておくための変数が必要になると思います。

元の数値配列
数値配列をインデックスで参照するためのカウンタ
現在のカウンター位置の合計を保持する為の変数

が必要だと思います

投稿2024/12/27 03:02

utm.

総合スコア762

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

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

daiku0919

2024/12/27 06:46

回答ありがとうございます。試してみましたが解決できませんでした。 (試した結果の詳細を記載してください) ループ分に中に $num = $number_box[$i] $numという新しい変数を入れて試したのですが解決できませんでした。。 この場合どの辺りに原因がありそうでしょうか?
utm.

2024/12/27 13:33

足し算をしてないからだと思います
guest

0

ヒントだけ

いくつか方法はあると思いますが、質問のような表を出力するには、合計のための新たな配列を作るといいでしょう。その配列には計算の結果として以下のような値が入ります。

php

1$sum_box = [33, 85, 94, 120, 130, 153, 249, 271];

投稿2024/12/27 01:40

TakaiY

総合スコア14245

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

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

daiku0919

2024/12/27 06:46

回答ありがとうございます。 ベストアンサーは別の方を選ばせていただきましたが、こちらの回答も非常に参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問