- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpのin_array()でわからない事があります。)
【PHP】in_array()の使い方と注意点
このQ&Aのポイント
- phpのin_array()は、指定した値が配列に存在するかどうかを判定する関数です。しかし、いくつかの注意点があります。
- まず、in_array()は配列内の値を比較するため、配列が正しく準備されていない場合には正しい結果が得られません。
- また、ファイルから読み込んだ配列をin_array()で比較する場合、改行文字などが含まれる可能性があるため、注意が必要です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
可能性としては2つ ひとつは改行文字の問題 http://www.php.net/manual/ja/function.file.php var_dump($str); してみるとわかりますが、バイト数が想定より大きくなっているようなら改行文字が 入っています。 基本的にはFILE_IGNORE_NEW_LINESを指定すると解決します。 もうひとつは文字コードの問題、 テキストファイルとプログラムファイルの文字コードが一致しないと話になりません。 また、fileでやるよりもう少し厳密にfopenしてfreadして・・・という プログラム的なI/Oを心がけた方がミスがへります
その他の回答 (1)
- yamada59
- ベストアンサー率74% (29/39)
回答No.1
file 関数はデフォルトでは改行コードを含むのが原因です。 $str = @file('hoge.txt', FILE_IGNORE_NEW_LINES); とするといいと思います。