• ベストアンサー

配列の書き方

多次元配列を使って都道府県と地域名と運賃データを格納しようと思っています。 例えば 北海道 都道府県コード1 サイズによって 1470,1680,1890,2100,2310,2520 青森県  都道府県コード2 秋田県  都道府県コード3 岩手県  都道府県コード4 この3県はサイズによって 1050,1260,1470,1680,1890,2100 ・・・ という情報を格納したいです。 入力された都道府県データと個数で送料を判定したいのですがどのようにすればいいのか途方にくれています。 ご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.2

以下のような定義でどうでしょうか。 文字列をキーにするのはなんとなく気持ちが悪いので都道府県コードをキーにしてみました。更に入力された都道府県データは都道府県コードで、個数から送料のランク(という表現でいいでしょうか)が決定できるものと仮定しています。 $data = array( "01" => array("北海道", 1470, 1680, 1890, 2100, 2310, 2520), "02" => array("青森県", 1050, 1260, 1470, 1680, 1890, 2100), "03" => array("秋田県", 1050, 1260, 1470, 1680, 1890, 2100), "04" => array("岩手県", 1050, 1260, 1470, 1680, 1890, 2100), ); 例えば、北海道の2番目のサイズの送料は$data["01"][2]として取得します。 もっと良い書き方もあるかと思いますが、それよりもデータベースが使えるならデータベースを利用した方が良いと思います。

eccschool
質問者

補足

ご回答有難うございます。 こちらの表現はとてもすばらしいと思うのですが。青森と秋田と岩手が同じデータが入っているので勿体ない感じがしています。 イメージしているのは 北海道(都道府県コード2)で運賃(で運賃(1050, 1260, 1470, 1680, 1890, 2100), 東北地方(都道府県コード2,都道府県コード3,都道府県コード4)で運賃(1050, 1260, 1470, 1680, 1890, 2100), ・・・ 近畿地方(都道府県コード21,都道府県コード22,都道府県コード23)で運賃(780, 990, 1200, 1410, 1620, 1830), 見たいな感じです。静的なデータなのでDBはつかいたくないかな・・・という思いです。よろしくおねがいします

その他の回答 (3)

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.4

ANo.2です。よろしくお願いされてしまったので。 効率的にデータを格納したいのならば尚更配列ではなくデータベースに格納すべきでしょう。 再利用性のないデータなのであれば、全体の処理のフローから都合のよい形の配列を定義すればいいだけだと考えます。 補足に書かれたイメージ通りの配列を実現するメリットはどのくらいあるのでしょうか。

  • koke29
  • ベストアンサー率58% (114/196)
回答No.3

単純に $hokkaido = array("1","1470","1680","1890","2100","2310","2520"); とかで47件データ作ってでも出来るんじゃないかとは思うんですが 処理の内容次第でより効率的になるなら例えばさっき書いたような データの作り方もありかなと思ったんすよ たぶんeccschool様がやりたいと思っていることは実現は可能な範疇 だとは思うのですが、何がしたいのかがよくわからないので 的を射た回答が出来ないというのが正直なところです

  • koke29
  • ベストアンサー率58% (114/196)
回答No.1

提示されている条件では、具体的にどんなデータが欲しいのかわからない ので、イメージでもいいのでこういうのっていうのを出した方が答えやすい と思いますよ このデータを使っての処理のフローもよくわからないので、その辺も 書いた方がよいと思います フォームで何を選択させて、格納データで何がしたいとか。 とりあえず複数の県で重複する値があるなら エリアコードと運賃コードみたいなもののデータ(area.txt) [0]=>1[1]=>A //北海道 [0]=>2[1]=>B //青森県 [0]=>3[1]=>B //秋田県 [0]=>4[1]=>B //岩手県 運賃コードと運賃のデータ(price.txt) [0]=>A[1]=>1470[2]=>1680… [0]=>B[1]=>1050[2]=>1260… みたいな感じにしとくとかですかね?? 見当違いだったらスミマセン

eccschool
質問者

補足

ご回答有難うございます。 現在のところ多次元配列で検討しています。 都道府県コードと個数をキーにして引っ掛けて3次元目(?)の運賃を表示しようとしています。 こういうのは無理でしょうか?

関連するQ&A