[PHP-users 16555]Re: '001E0'と'00001'が同じ値?
gotou
gotou @ hokkou.co.jp
2003年 7月 8日 (火) 14:18:27 JST
Gotouです。
すいません。間違えました。
>
> Gotouです。
>
> 今、配列内のデータと、データベースから呼び出したデータを
> array_searchで比較して、データが配列内にあった場合
> <select>で選択させる、というプログラムがあります。
>
array_searchじゃなくて、in_arrayですね。
> そのときに、
>
> 配列データ = データベースのデータ
> 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 メーリングリストの案内