dポイントプレゼントキャンペーン実施中!

昨日からずーと悩んでいるのですがfor文で
*実際はテーブルを使ってます
値144
値255
値366
値477
件数4件
平均60.5
と出したいのですが下のプログラムでは出ませんなぜでしょうか?

<HTML>
<HEAD>
<TITLE>for文例問題1</TITLE>
</HEAD>
<BODY>
<table border>
<?php
$ary1 = array(44,55,66,77);

for($i=0;$i<4;$i++)
{
$a = 44+55+66+77/4;
<tr><th>値 $i</th>
   <td>44</td></tr>
<tr><th>値 $i</th>
   <td>55</td></tr>
<tr><th>値 $i</th>
   <td>66</td></tr>
<tr><th>値 $i</th>
   <td>77</td></tr>
<tr><th>件名</th>
<td> $i件</td></tr>
<tr><th>平均</th>
<td> $a件</td></tr>
</table>
}
?>
</BODY>
</HTML>
ご存知の方どうか助言お願いします

A 回答 (4件)

元も題意が読みきれないのですが、こんな感じですか?



<HTML>
<HEAD>
<TITLE>for文例問題1</TITLE>
</HEAD>
<BODY>
<table border>
<?php
$ary1 = array(44,55,66,77);
$sum = 0;

for($i=0;$i<4;$i++)
{
?>
<tr><th>値 <?= $i ?></th>
   <td><?= $ary1[$i] ?></td></tr>
<? $sum += $ary1[$i];
}
?>
<tr><th>件数</th>
<td><?= $i ?>件</td></tr>
<tr><th>平均</th>
<td><?= $sum/$i ?></td></tr>
</table>
</BODY>
</HTML>
    • good
    • 0

こんにちは


同じくPHP勉強中の身ですが、何かの参考になればと思います。
forを使うということですので・・・

<HTML>
<HEAD>
<TITLE>for文例問題1</TITLE>
</HEAD>
<BODY>

<table border="1">

<?php
$ary1 = array(44,55,66,77);
$kensu =count($ary1);//件数
$heikin = array_sum($ary1)/$kensu;//平均値

for($i=0;$i<$kensu;$i++){
echo "<tr><th>値".$i."</th><td>".$ary1[$i]."</td></tr>\n";
}
echo "<tr><th>件数</th><td>".$kensu."件</td></tr>\n";
echo "<tr><th>平均値</th><td>".$heikin."</td></tr>\n";
?>

</table>

</BODY>
</HTML>

こんな感じでどうでしょうか?もっとスマートなやり方があるとは思いますが(笑)

count($ary1)で配列の中の要素の数を取り出します。つまりこの例題では”4”になります。

array_sum($ary1)で配列の値の合計値(44+55+66+77)を出します。その値を件数で割ることで平均値がでます。

forでループさせるのは配列の要素と値、件数と平均値はループの必要がありませんのでfor(){}の外側に出します。

こういう感じにしておけば、後で配列の中身($ary1(44,55,66,77);)が変更されても、プログラム自体は変更せずに使用できるとおもいます。

No.3の方がおっしゃるようにphpの初歩的な文法(例えばechoやprint文)、htmlの文法の基本(例えばtableの組み方やボーダーの付け方)を確認された方がよいと思いますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます!おかげで理解できました!
PHPの勉強がんばっていきましょう!!

お礼日時:2007/05/16 17:32

回答はもうでてるので書きませんが、


文法がだいぶ間違ってます。

forの動作もわかっていないようですし。

文法やもっと基本的なことからやり直したほうがいいかと。
    • good
    • 0

ちょっとしたサンプルです。



<html>
<head>
<title>for文例問題1</title>
</head>
<body>
<table border="1">
<?php
$ary1 = array(44, 55, 66, 77);
for ($total = $i = 0; $i < count($ary1); $i++) {
  $total += $ary1[$i];
  ?>
  <tr><th>値<?php print $i; ?></th>
  <td><?php print $ary1[$i]; ?></td></tr>
<?php
}
?>
<tr><th>件数</th>
<td><?php print $i; ?></td></tr>
<tr><th>平均</th>
<td><?php print $total / $i; ?></td></tr>
</table>
</body>
</html>

(注)インデントのため、全角空白を使っています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!