以下のような変数の置換を関数でしたいのですが、


$menu1 = $row2[”menu1”];
$menu2 = $row2[”menu2”];
$menu3 = $row2[”menu3”];
$menu1rank = $row2[”menu1rank”];
$menu2rank = $row2[”menu2rank”];
$menu3rank = $row2[”menu3rank”];

以下の構文では
unexpected ’=’
エラーが出てしまいダメでした。色々試してみたのですが、どうにも自分では解決できません。ご指導いただけないでしょうか。

for($i = 1;$i < 4;$i++) {
$menu.$i = $row2[”menu.$i.”];
”$menu.$i.rank” = $row2[”menu.$i.rank”];
}

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/03/12 12:21:47
  • 終了:--

回答(2件)

id:wintarsnow No.1

wintarsnow回答回数103ベストアンサー獲得回数22005/03/12 12:47:15

ポイント30pt

要するに、配列のキーを変数名にして、値をその変数に入れるということですよね。

PHPなら、extract関数でいけると思うのですがいかがでしょう。

extract($row2);

id:ilovegarbage No.2

ilovegarbage回答回数38ベストアンサー獲得回数02005/03/12 12:53:02

ポイント40pt

言語は何でしょう?

PerlかPHPあたりでしたら、eval()を使うと出来ますよ。

eval(”¥$menu$i = ¥$row2¥[¥”menu”.$i.”rank¥”¥];”)

のような感じで。

要は

 $menu.$i

だと$menuの文字列と$iを結合した値になってしまうので、代入できないのです。

左辺をPerl/PHP式として評価できればokということです。

id:Marimecco

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

なるほど結合した値になってしまうのですね。

eval関数憶えておきたいと思います。

2005/03/12 13:46:13

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません