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

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

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

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

Q&A

解決済

1回答

1934閲覧

foreachの結果を変数として合計を求めたい【PHP】

tajix_japan

総合スコア132

PHP

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

0グッド

0クリップ

投稿2020/02/04 12:48

foreachの結果を変数として合計を求めたいです。

下記のPHPは株価と保有株数、それによる各株ごとの資産合計を示すことができます。

【PHP 1】

php

1 2<?php 3$array = [ ['トヨタ',1255,200], ['日産',732,400], ['ホンダ',1650,600] ]; 4foreach($array as $vals){ 5 echo $vals[0].'株価'.$vals[1].'円 / '.$vals[2].'株 / 資産 '.array_product(array($vals[1], $vals[2])).''; 6 echo '<br>'; 7} 8 9?> 10

表示結果
トヨタ株価1255円 / 200株 / 資産 251000
日産株価732円 / 400株 / 資産 292800
ホンダ株価1650円 / 600株 / 資産 990000

やりたいこと

資産合計を求めたいです。

作ったPHP
【PHP 2】

php

1<?php 2$array2 = [ ['トヨタ',1255,200], ['日産',732,400], ['ホンダ',1650,600] ]; 3foreach($array2 as $vals2){ 4 echo ''.array_product(array($vals2[1], $vals2[2])).','; 5}; 6?>

まずは、上記【PHP 2】で 
251000,292800,990000
という表示が可能であることを確認。

次に
【PHP 3】を作りました。

php

1<?php 2$total=array(251000,292800,990000); 3echo "<BR>資産合計<BR>"; 4echo array_sum($total); 5?>

【PHP 3】で
資産合計
1533800

という計算ができることを確認。

これらから、PHP3の $total=array(251000,292800,990000) の数字の部分にPHP2で作った「251000,292800,990000」の数字を入るようにすれば、トータルが求められるはずです。

作ったPHP
【PHP 4】

php

1<?php 2$array2 = [ ['トヨタ',1255,200], ['日産',732,400], ['ホンダ',1650,600] ]; 3$total=(foreach($array2 as $vals2){ 4 echo ''.array_product(array($vals2[1], $vals2[2])).','; 5}; 6); 7 8echo "<BR>資産合計<BR>"; 9echo array_sum($total); 10?>

結果
動きません。500 (Internal Server Error)

どのようにすれば、foreachの結果を「変数としてarray_sumで処理」できますでしょうか?
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

さすがに下記は無理があります。(意味が分からない)

$total=(foreach($array2 as $vals2){

echo ''.array_product(array($vals2[1], $vals2[2])).',';

};
);

そもそもarray_sum()って必要でしょうか。

php

1$array2 = [ ['トヨタ',1255,200], ['日産',732,400], ['ホンダ',1650,600] ]; 2$total = 0; 3foreach($array2 as $vals2){ 4 $total +=array_product(array($vals2[1], $vals2[2])); 5} 6 7echo $total;

強いて使うなら

php

1<?php 2$array2 = [ ['トヨタ',1255,200], ['日産',732,400], ['ホンダ',1650,600] ]; 3$total = []; 4foreach($array2 as $vals2){ 5 $total[]=array_product(array($vals2[1], $vals2[2])); 6} 7 8echo array_sum($total); 9

投稿2020/02/04 12:54

m.ts10806

総合スコア80875

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

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

tajix_japan

2020/02/04 12:59

有難うございます。 出来ました!! 深く感謝申し上げます!!
m.ts10806

2020/02/04 13:01

PHPマニュアル確認しましょう。 IDE使いましょう(実行しなくても構文エラー程度ならすぐ分かります) 1つ1つ丁寧に処理をしましょう。 書いた通りにしか動きませんので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問