ido[] keido[]
という2つの配列があります。緯度経度情報です。
また、固定の数字が2つあります。
36と135とします。
以下の計算式の結果を新しい配列kyori[]に入れたいです。
(36-ido[])^ + (135-keido[])^
できれば上の計算式の結果を平方根?して入れたいです。つまり結果が9なら3、16なら4という具合です。
説明が下手ですみませんが、よろしくお願いします。
pow関数を使います。
number pow ( number base, number exp )
base の exp 乗を 返します。可能な場合、この関数は、integer 型の値を 返しま。
kyori[] = pow(36-ido[0],2)+pow(135-keido[0],2);
//配列$idoと$keidoの要素数やキーが同じ場合の例です。 forceach( $ido as $key => $value){ // (36-ido[])^ + (135-keido[])^ $heihou = pow(36-ido[$key],2) + pow(135-keido[$key],2); // 平方根 $kyori[$key] = sqrt( $heihou ); }
http://au.php.net/manual/ja/function.sqrt.php
※先ほどの質問の件
さらに改良版の回答を書き込みましたので、できたら見て下さいね!
度々ありがとうございます!
一連の質問の最後にあたるものも先ほどUPしました。
もしよろしければお願いします。
平方根ならsqrt
$kyori = array(); for($i=0; $i < count($ido); $i++){ $kyori[] = sqrt( pow(36 - ido[$i], 2) + pow(135 - keido[$i],2) ); }
しかしpowはintegerを返すので
(36-ido[$i]) * (36-ido[$i])としたほうが精度的には良いでしょう。
bcpowが使えればそれでもいいですが。
小数点題7位くらいまで取り扱いますのでintegerだと精度がかなり落ちてしまいますね。
bcpowを使わせていただきました。
アドバイスありがとうございます!
ありがとうございます。