新潟県妙高市を拠点とする、ホームページと広告の相談相手

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

先日、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)を付けました。

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

ページの先頭へ戻る

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

[PHPで[Warning: in_array() expects parameter 2 to be array, string given in…]のエラーメッセージが出た時の対処法]の感想を、下記のリンク先の「感想投稿フォーム」よりお気軽にお寄せください。
メールアドレスは不要です。

感想投稿フォームへ

いいね!と思っていただけたらSNSでシェアしてください♪

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

WordPressでホームページを制作したことのある方なら「ワードププレスのディレクトリ問題」に直面された方もいらっしゃるかと思います。 WordPres …… 続きを読む

ホームページを作る上で「titleタグ(タイトルタグ)」というものが重要な要素の一つになります。 皆さんがブログを書いている場合は、その投稿画面で入力した …… 続きを読む

シリーズ「妙高Web屋のホントは公表したくないホームページ制作」です。 皆さんはホームページを作りたいとお考えになって、制作業者さんやデザイナーさんといっ …… 続きを読む

Copyright (C) 妙高Web屋 All Rights Reserved.

ページの先頭へ