[PHP-users 15606]Re: 同名のテキストフィールドから配列で受け取りたい

Osamu Shigematsu m5issige @ mr.hitachi-medical.co.jp
2003年 6月 2日 (月) 10:20:26 JST


重松です。こんにちは。

> しかし、
> 
> │	$ExlUserID = $HTTP_POST_VARS['ExlUserID'];
> │	for ($i = 0 ; $i < count($ExlUserID) ; $i++){
> │		print($ExlUserID[$i]."<BR>");
> │	}
> 
> を、
> $ExlUserID = $HTTP_POST_VARS['ExlUserID[]'];
> としても、配列として、取得できないようです。
> 
> どうすればいいかわかりますか?

回答の本題は、既についているようですが:

配列の概念が、という記述がありましたので、補足しますと、
PHP の array は、ハッシュ表なので、(いわゆる普通の?) 配列のように、
インデックスが 0 から順番に歯抜けにならず、
常についているわけではありません。

なので、

	foreach($ExlUserID as $id) {
		print $id . '<br />';
	}

ようにされると、歯抜けの場合でも問題なく動くコードになります。

あるいは、もっと単純に、

	print @join($ExlUserID, '<br />') . '<br />';

のようにすることもできます。
# join に配列以外を渡すとエラーになります。@ でそれを抑制します。

また、for 文で、 $i < count($ExlUserID) はループでその都度
評価されますが、count() も毎回実行されます。また、左辺値が不要な場合、
$i++ という書き方は低速なので、++$i の方がいいかもしれません。
# が気分の問題。

PHP は基本的に書いたとおり実行されるので、ずばりそのものがある場合、
極力利用することで速度が稼げます。

ところで、私の知ってる野口さん?
以前台東区の会社でご一緒だったような気が。
同姓同名ならごめんなさい。

-- 
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>



PHP-users メーリングリストの案内