
2点間の距離を計算し、距離と場所名を連想配列にしたいのですが。
例えばデータベースのテーブルに
1 x1,y1,地点A
2 x2,y2,地点B
3 x3,y3,地点C
4 x4,y4,地点D
のように2点の座標と場所名が入っています。
これをデータベースから引っ張ってきて距離が100以上を代入
*データベースに接続済み
while($col = mysql_fetch_array($res)) {
$kyori = (xとyの距離計算);
if($kyori > 100){連想配列に代入}
}
としたいのですが、どうもarray_pushではうまくいきません。
結果としては
$hairetu=array(地点A => 150,地点B => 200,地点D => 120,);
のようになっていて欲しいのですが。
表示時にasortでソートしたいのでこのようにしたいのですが
どなたかお知恵を貸して頂けませんでしょうか?
宜しくお願いします。

No.1ベストアンサー
- 回答日時:
連想配列に代入する場合は、array_pushは使いません。
$hairetu['地点A'] = 150;
のようにして代入します。
お早いご回答、誠にありがとうございます。
私、根本から勘違いしていたようですね。
おっしゃる方法で期待通りの結果が得られました。
重ねての質問で大変恐縮ですが、結果を
while($key,$value) = each($hairetu)){
print $key."=".$value."<BR>";}
で表示できたのですが、100件以上ずらずらと表示されるので
20件づつ表示させようと思ったのですが、書籍によると
「連想配列はfor文でデータを取り出す事ができません」
とありました…。
こういった場合、皆様はどのように処理されてるのでしょうか?
No.3
- 回答日時:
for文で連想配列が使えないってのがよくわかりませんが・・・
foreach使ったらどうでしょう?
あまりキレイじゃないですけど。
10~20のみ表示なら
$start = 10;
$end = 20;
$count = 0;
foreach ($hairetu as $key => $val){
if($count >= $start && $count <= $end){
print $key."="$val;
}
$count++;
}
適当にfunction作って引数で、startとend指定してあげればOKかと。
ちょっと無理矢理感がありますが・・・
ご返答ありがとうございます。
こちらの方法でもうまくいきました。
お二方のお陰で今回は大変勉強になりました。
ありがとうございました。

No.2
- 回答日時:
余りスマートなやり方ではないかもしれませんが、21件目~40件目まで表示したいならば、以下のようにすればできます。
$from = 21;
$to = 40;
for ($cnt=1; list($key,$value) = each($hairetu); $cnt++){
if ($from <= $cnt && $cnt <= $to) print $key."=".$value."<BR>";
}
重ね重ねありがとうございます。
こちらの方法でページングを行うことができました。
現在ページを判定する変数をクエリで付加することで
希望の結果になりました。
もう少し勉強します。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのheader("Location:#pos")...
-
フォームで戻った際に入力済み...
-
SplFileObject を利用したとき...
-
csvファイルについて教えて下さ...
-
PHP8でWarning:Undefined varia...
-
PHPSpreadsheetによる書き出し...
-
PHPの変わった閉じタグの必要性...
-
セッション関数を使わずにファ...
-
composerをインストールしたい...
-
phpの問い合わせフォームを作っ...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
foreachで上限回数指定方法また...
-
マッチング処理(1:N)
-
超難問 Scripting.Dictionary ...
-
Dictionary(連想配列?)の使い方
-
foreachとかの勝手な省略?
-
PHPの構文で間違えが分からない
-
PHPでこのコード自体に意味は無...
-
VB.NET で 二次元のハッシュは...
-
ftokが動かない?
-
Excel VBAでフィルター後の対象...
-
PHPで連想配列のプルダウンメニ...
-
PHP:ツリー構造をulとli要素に...
-
PHP、{}記号の意味
-
smartyでtplファイルでの2次元配列
-
配列の値によって条件分岐がし...
-
POSTで渡されるデータの数がわ...
-
pdfファイルの複数添付 引数の型
-
ulのネストをタブ区切りに変換...
-
リストボックス複数選択抽出方法
-
多次元配列の中で条件に合う要...
おすすめ情報