新潟県妙高市|ホームページと広告の相談相手

妙高Web屋

お仕事のご依頼お見積りのご依頼

WordPress

PHPで[Warning: in_array() expects parameter 2 to be array, string given in…]のエラーメッセージが出た時の対処法

2018.9.27 2019.3.12

PHPで[Warning: in_array() expects parameter 2 to be array, string given in…]のエラーメッセージが出た時の対処法
WordPress 1 0

先日、WordPressに「AdVanced Custom Fields」をインストールして、カスタムフィールドを活用したWebサイトを制作していた時のこと。

そこで、選択したチェックボックスの項目に応じて処理をする場面で、PHPのエラーメッセージが表示されるというケースに直面しました。

例えば「妙高市のおすすめスポット」を表示させるような箇所があったとします。

そして、チェックボックスには【新井】【関山】【赤倉】のような項目があると仮定します。

そのうえで、例えば[single.php]に下記のコードを記述しました。

<p>妙高市のオススメスポットは、
<?php $myk_field_name = get_field('myk_field_name'); ?>
<?php if(in_array('arai', $myk_field_name)) { ?>
<?php echo '【新井】'; ?>
<?php } ?>
<?php if(in_array('sekiyama', $myk_field_name)) { ?>
<?php echo '【関山】'; ?>
<?php } ?>
<?php if(in_array('akakura', $myk_field_name)) { ?>
<?php echo '【赤倉】'; ?>
<?php } ?>
です!</p>

すると、[Warning: in_array() expects parameter 2 to be array, string given in…]というエラーメッセージが表示されたのです!

今回は、その解消法をご紹介します( ^∀^)

この記事の目次

【結論】チェックボックスで選択されている項目を表示する方法

まずは結論から。

冒頭のコードで表示されるエラーメッセージは、下記のようにしたことで、私の使用している環境では解消されたことを確認しました(⌒▽⌒)

<p>妙高市のオススメスポットは、
<?php $myk_field_name = get_field('myk_field_name'); ?>
<?php if(in_array('arai', (array)$myk_field_name)) { ?>
<?php echo '【新井】'; ?>
<?php } ?>
<?php if(in_array('sekiyama', (array)$myk_field_name)) { ?>
<?php echo '【関山】'; ?>
<?php } ?>
<?php if(in_array('akakura', (array)$myk_field_name)) { ?>
<?php echo '【赤倉】'; ?>
<?php } ?>
です!</p>

冒頭のコードとの違いは、変数[$myk_field_name]の直前に(array)を付けたという点です。

ページの先頭へ戻る

[原因]エラーメッセージ[Warning: in_array() expects parameter 2 to be array, string given in…]は「2番目の引数が配列でなかったことによるエラー」

さて、そもそも何故[Warning: in_array() expects parameter 2 to be array, string given in…]というエラーメッセージが表示されてしまったのでしょうか??

原因を探るために、このエラーメッセージをザックリと訳してみると…、

[in_array()]に設定する引数の2番目は「配列」じゃないとダメですよ〜!

という趣旨になります。

よくよく振り返ってみると、[Warning: in_array() expects parameter 2 to be array, string given in…]が表示されている箇所はいずれも、チェックボックスがチェックされていなかった箇所で表示されていました。

要するに、「値が何も設定されていなかったので、配列として認識されていなかった」と考えられます。

ページの先頭へ戻る

[対処]2番目の引数を配列として設定する

さて、配列として認識されていないならば、「これは変数ですよ」と認識させてあげれば良いお話です(^^)

そのうえで、1番目のセクションで、変数[$myk_field_name]の直前に(array)を付けました。

これによってエラーメッセージも解消され、該当箇所は、意図する表示になりました(⌒▽⌒)

ページの先頭へ戻る

こちらの記事に感想をお寄せください

こちらの記事をご覧いただき、感じたことなどありましたら下記のボタンを押していただき「感想投稿フォーム」よりお気軽にご感想をお寄せください。

この記事の感想を投稿する
1 0

LINE@始めました!

妙高Web屋ではこのたび、LINE@(ラインアット)を始めることとなりました。

企業やお店のWeb担当者さまへ向けて、ホームページの運営・管理・更新に関する情報を発信していきます。

情報を購読できる「友だち」へのご登録は、下記のボタンよりお願いいたします。

目的のページは見つかりましたか?

お探しのページが見当たらない場合は、キーワードを手がかりに、サイト内検索をご利用ください。

または、下記のボタンより「サイトマップ」のページにアクセスしていただき、お探しください。

目的のページは見つかりましたか?
Twitterでシェアする Twitterでシェアする Facebookでシェアする Facebookでシェアする Feedlyで購読する Feedlyで購読する お問い合わせお問い合わせ ページの先頭へページの先頭へ