[PHP-users 8380] 配列変数の展開について

sin php-users@php.gr.jp
Wed, 03 Jul 2002 06:53:41 +0900


sinと言います。

検索サイトのカテゴリーを表示する部分なのですが、PHP4で以下のソースを実行すると連番が振られて展開されます。PHPの仕様なのでしょうか?

-------------------------------------------------
	$sql	=	"select * from t_category where ID = 1";
	if(!$a	=	mysql_query($sql) ){
			error('データ読み出せません',"管理人にご連絡下さい"); }

#	html表示
	$to[category]	= '<Select name="category" size="1">';
	$date_category	=	mysql_fetch_array($a);

	while (list($key,$var) = each($date_category)){	
		if($key != 'ID' && $var != 'last'){

			$to[category]	.="<Option>$var";
		}
	}
		$to[category]	.=	'</Select><Br>';
-------------------------------------------------
テーブル t_category の内容

ID	category-1	category-2・・・・・
1	リンク集	last		''	''・・・

実行結果表示

<Select name="category" size="1">
<Option>リンク集
<Option>リンク集
	:
	:
</Select><Br>
-------------------------------------------------
デバグ用にwhileの直後に$key,$varを表示

出力結果
0	1<br>
ID	1<br>
1	リンク集<br>
category_1	リンク集<br>
2	last<br>
category_2	last<br>
	:
	:
フィールド名とは別に連番が振られるので、$key=1,$var=リンク集、$key=category_1(フィールド名),$var=リンク集・・・・
となって$varが二つずつ表示される。
--------------------------------------------------

自分の希望する動作としては、以下のように表示したいのですが、どのように変更すれば宜しいでしょうか?

<Select name="category" size="1">
<Option>リンク集
	:
	:
</Select>
-------------------------------------------------
お忙しい所申し訳ありませんが、ご教示の程宜しくお願い致します。