• ベストアンサー

配列を関数に渡したいのですが…

次のように配列を関数に渡したいのですが、うまく出来ません。どのようにしたら良いのでしょうか? 渡したい配列の個数は、偶数個ですが、未知の個数です。 $A_LINK = A_LINK("TEST_NAME", "TEST_VAL"); function A_LINK($array) { while (count($array) > 0) { $name = array_shift($array); $value = array_shift($array); $name = urlencode($name); $value = urlencode($value); $msg .= "$name=$value"; } return $msg; }

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

  • ベストアンサー
noname#7734
noname#7734
回答No.1

array で渡さないといけませんので、 A_LINK(array("TEST_NAME", "TEST_VAL")); のようにします。 一旦作ってから渡すなら、 $arg = array(); $arg[] = "TEST_NAME"; $arg[] = "TEST_VAL"; A_LINK($arg); とすれば良いでしょう。

goonejp
質問者

補足

要するに、URLエンコードした値を&でつなげるだけなのですが、PHPにこれを一つで出来る関数があったような気がしたのですが、私の気のせいでしょうか???

その他の回答 (1)

  • tripod_r
  • ベストアンサー率38% (5/13)
回答No.2

私が複数の要素を関数に渡す場合は下記の様にします。 (簡単に書きますのであとは応用して下さい) <? $y_name[0]='name0'; $y_name[1]='name1'; $y_name[2]='name2'; $y_value[0]='value0'; $y_value[1]='value1'; $y_value[2]='value2'; $A_LINK=A_LINK($y_name,$y_value); exit; function A_LINK($y_name,$y_value){ for ($i = 0; $y_name[$i] != ''; $i++) { $name = $y_name[$i]; $value = $y_value[$i]; $name = urlencode($name); $value = urlencode($value); $msg .= "$name=$value"; } return $msg; } ?>

goonejp
質問者

補足

要するに、URLエンコードした値を&でつなげるだけなのですが、PHPにこれを一つで出来る関数があったような気がしたのですが、私の気のせいでしょうか???

関連するQ&A