[PHP-users 16554]'001E0'と'00001'が同じ値?
gotou
gotou @ hokkou.co.jp
2003年 7月 8日 (火) 14:07:28 JST
Gotouです。
今、配列内のデータと、データベースから呼び出したデータを
array_searchで比較して、データが配列内にあった場合
<select>で選択させる、というプログラムがあります。
そのときに、
配列データ = データベースのデータ
001E0 = 00001
001E1 = 00010
001E2 = 00100
という風に評価されてしまい、余分な3件のデータが選択されてしまいます。
’001E0’の’E’というのが曲者なのかな、と浅知恵ながら思っているのですが、
それをどうすればよいのか、というのがわかりません。
どうか、知恵をお貸しください。
下がその判断している部分のソースです。
---------------------------------------------------------
for ($i=0;$i<pg_numrows($result);$i++){
$user_st_cd[]=pg_result($result,$i,0);
}
<中略>
echo ("<select name=st_cd[] size=20 multiple>");
FOR ($i = 0 ; $i < pg_numrows( $result ) ; $i++ ){
if (in_array(pg_result( $result, $i, 0 ),$user_st_cd))
echo (" <option value='" . pg_result( $result, $i, 0 ) . "' selected>"
. pg_result( $result, $i, 1 ) . "</option>\n");
else
echo (" <option value='" . pg_result( $result, $i, 0 ) . "'>" .
pg_result( $result, $i, 1 ) . "</option>\n");
}
echo ("</select>");
---------------------------------------------------------
in_arrayで判定しているところを、array_searchに変えてみたりもしましたが、
だめでした(悪あがき)。
PHPのバージョンは、4.2.4です。
どうかよろしくお願いします。
PHP-users メーリングリストの案内