[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 メーリングリストの案内