日記
PHPの配列で、 (21:34)Edit

ある配列変数が、

$val = array(1, 2, 3);

として与えられたのか

$val = array(0 => 1, 1 => 2, 2 => 3);

として与えられたのかを判別する方法ってないんだろうか? 多分代入されてしまったあとは判別がつかないとは思うんだけど、もしかしたら明示的に配列のキーが与えられたかどうかを判別する手段が存在しないかなー。

どういう時に使いたいのかというと、HTMLのselect-optionなんかのvalue(内部値)とcaption(表示文字列)の組み合わせを連想配列で渡すときに、前者ならばvalueもcaptionも同じものとして扱い、後者ならばキーがvalue、値がcaptionとして扱う、なんて使い分けれないかなーと思った次第。

前者ならば、

<select>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

に展開されて、後者ならば、

<select>
<option value="0">1</option>
<option value="1">2</option>
<option value="2">3</option>
</select>

に展開される感じね。

Published At2005-06-07 00:00Updated At2005-06-07 00:00