問題
phpで「in_array()」を使ったら、「in_array() [function.in-array]: Wrong datatype for second argument」というエラーが出てしまった。
解決策
「in_array( '値', '配列', true )」の第二引数(配列)の頭に「(array)」を付ける。→「in_array( '値', (array)'配列', true )」
「in_array()」でのエラー
phpで「in_array()」を使ったら、「in_array() [function.in-array]: Wrong datatype for second argument」というエラーに遭遇しました…。
そんな時の対処法をご紹介します。
第二引数(配列)の頭に「(array)」を付ける。
「in_array( ‘値’, ‘配列’, true )」の第二引数(配列)の頭に「(array)」を付けることで、エラーを回避することができました。
今回のエラーは【「in_array()」の第二引数のデータ型が違います】というエラーとなります。
第二引数に指定した配列が何らかの理由で配列のデータ型として認識されていなかったのが要因となります。
なので第二引数を強制的に配列として認識させます。
修正前
if( in_array( 'テキスト', $arrays, true ) ){
// 配列の中に該当する値がある場合
}else{
// 配列の中に該当する値がない場合
}
修正後
if( in_array( 'テキスト', array( $arrays ), true ) ){
// 配列の中に該当する値がある場合
}else{
// 配列の中に該当する値がない場合
}
ポイント!
- 変数の頭に「(array)」を付けることで、その変数を強制的に配列として認識させることができます。
参考ページ
以下のサイトが、より詳しく解説してくれています。
【PHP error in_array() [function.in-array]: Wrong datatype for second argument – Stack Overflow】
https://stackoverflow.com/questions/3544250/php-error-in-array-function-in-array-wrong-datatype-for-second-argument
コメント