PHP フォームを使った計算 【配列】

S本さんとS藤さんが、前回作ったフォームを実戦で使ってみてもらえるとの事でしたので、さっそくバージョンアップしました。

パっと見はほとんど変わりませんが、スクリプトの中身はかなり変わりました。
僕はギャンブルは全くやらないので詳しくはわからないのですが
あると便利そうなものを想像して、いろいろ付け足してみました。

続・多点買いで均等払いになる投資金額を求める

  《主な変更点》
*点数は最大10点まで、好きな点数で使える。
*買い目等を記入する memo 欄を追加(空白でも可)
*金額は3桁ごとにカンマ区切りで表示。
*オッズが整数の場合でも、小数点第一位まで表示。
*払い戻しが投資金額を下回る場合は、払戻金を赤色で表示。
*変換切替がじゃまくさい場合は、全角数字でもOK

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
body{padding:10px;background-color:#000;color:#fff;line-height:40px}
h1{color:#f00;font-size:16px;margin:0}
</style>
<title>続・多点買いで均等払いになる投資金額を求める</title>
</head>
<body>
<h1>続・多点買いで均等払いになる投資金額を求める</h1>
<form method="POST" action="php02_2.php">
 投資金:<input type="text" name="money"> 
	<input type="submit" value="計算する">
        <div id="loops"></div>
	<script>//------------------------------------------------------------>
	 var loop =""; 
	 for (i=0;i<10;i++){
	 loop += ' memo:<input type="text" size="10" name="text[]"> ';
	 loop += ' オッズ:<input type="text" size="3" name="odds[]"><br>';}
	 document.getElementById("loops").innerHTML=loop; 
	</script><!----------------------------------------------------------->
</form>
</body>
</html>

php02_2.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<style>
body{padding:10px;background-color:#000;color:#fff;line-height:40px}
h1{color:#f00;font-size:16px;margin:0;}
</style>
</head>
<body>
<?php
# 代入&計算 -----------------------------------------------------
$moy = htmlspecialchars(mb_convert_kana($_POST['money'],"a","utf-8"));
$a=0;
for ($i=0;$i<10;$i++){ 
    $tx[$i] = htmlspecialchars(mb_convert_kana($_POST['text'][$i],"a","utf-8"));
    $od[$i] = htmlspecialchars(mb_convert_kana($_POST['odds'][$i],"a","utf-8"));
    $a += $od[$i];
}
$c=0; 
for ($i=0;$i<10;$i++){ 
 if ($od[$i]){$b[$i] = $a/$od[$i];}
     $c += $b[$i]; 
}
$kei=0;
for ($i=0;$i<10;$i++){ 
 if ($od[$i]){$d[$i] = round($b[$i]/$c*$moy,-2);}
     $kei += $d[$i];
}
# 表示 -----------------------------------------------------------	
echo '<h1>投資金額 合計 ---> '.number_format($kei).' 円</h1>';
for ($i=0;$i<10;$i++){
	 if ($d[$i]){ $o = number_format($od[$i],1);
	 if ($tx[$i]!='') { $tx[$i] .= " ---> ";} else {
             $tx[$i] = "オッズ ".$o." --->";
	 }
	echo " $tx[$i]  ".number_format($d[$i])." 円 × ";
	$p = number_format($od[$i]*$d[$i]);
	if ($od[$i]*$d[$i]<$moy){ $p = '<span style="color:#f00">'.$p.'</span>';}
	echo  $o." 倍 = ".$p.' 円<br>';
        }
}
   echo '<input type="button" onClick="history.back()" value="戻る">';
?>
</body>
</html>