人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQL4.025をSELECTで読み込み多次元配列を作成し、これをテンプレートで吐き出しています。
例えば都道府県テーブルの場合、テンプレートでは・・・

<select name="address_01">
<option value="1">北海道</option>
<option value="2">青森県</option>
<option value="3">岩手県</option>
</select>

これを、

<select name="address_01">
<option value="-">▽都道府県を選択</option>
<option value="1">北海道</option>
<option value="2">青森県</option>
<option value="3">岩手県</option>
</select>

のように、一行挿入したいのです。
多次元配列を作る際、もしくは、配列を作成した後に一行挿入を行いたいのですが、どのようにすればよろしいでしょうか?
よろしくお願いします。

●質問者: seadwell
●カテゴリ:インターネット ウェブ制作
✍キーワード:SELECT テンプレート 作成 北海道 岩手県
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● studioes
●30ポイント

<head>

<SCRIPT TYPE='text/javascript'>

<!--

function aa(){

var opt = new Option("-","▽都道府県を選択",true,true);

address_01.add(opt,0);

}

//-->

</SCRIPT>

</head>

<body onload="aa()">

こんなんでどうでしょ。

◎質問者からの返答

おお!

javascriptでもできるのですね^^

前回に引き続き、ありがとうございました。

質問に書き忘れましたが、PHP5での処理も知りたいので、PHPでの書き方も引き続き回答を受付いたします。

多次元配列の配列名は$address_01とします。

よろしくお願いします。


2 ● kurukuru-neko
●30ポイント ベストアンサー

先頭に追加なら

array_unshift( $address_01,array("-","▽都道府県を選択") );

array_unshift

http://jp.php.net/manual/ja/function.array-unshift.php

◎質問者からの返答

いつも、回答ありがとうございます。

今回教えていただいたarray_unshiftという関数の手がかりができましたので、早速調べて試してみました。


多次元配列に2件のダミーデータを作成し、var_dump($address_01);で中を見てみますと以下のようになります。

array(2) { [1]=> string(14) "北海道" [2]=> string(12) "青森県" }


そして、教えていただいたarray_unshiftを掛け中を除いてみますと、

array(3) { [0]=> array(2) { [0]=> string(1) "-" [1]=> string(18) "▽カテゴリーを選択" } [1]=> string(14) "北海道" [2]=> string(12) "青森県" }

のようになっていました。

添え字[0]が新たに作成され、その中に配列が入っています。


そこでいろいろ調べてみましたら、array_unshiftは添え字配列の解説はなされているのですが、多次元配列や連想配列に関してのデーター挿入は見つけることができませんでした。

今回は、偶然ID_Noがvalue値になっていて、かつ、ID_Noが順番に並んでいるので、

array_unshift( $address_01,"▽都道府県を選択");でも

添え字として[0]が振られることで問題ありませんが、仮に多次元配列でKEYをvalueにしたい場合、value値が数字とは限りません。

また、array_unshiftを使うと添え字が[0]から振りなおされるとも書いてありました。

今回は問題ありませんが、例えば、DBから読み込んだデータのIDに欠番が生じていた場合など、素直にその添え字をIDとして使うわけには行きません。


お手数ですが、もう少しお付き合い願えないでしょうか?


3 ● GEN111
●20ポイント

新しい要素のキーがコントロール下にあるなら素直に

$address_01[$newkey] = $newvalue ;

必要ならこのあとソート、じゃダメですか?

◎質問者からの返答

それは、私も考えたのですが、何かいい関数があるのでは?と質問しました^^

回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ