PHP

【PHP】in_arrayとは【配列に含まれてるかを確認】

PHPのin_arrayについて説明します。

in_arrayとは?

特定の値が配列に含まれてるかを確認

in_arrayとは、特定の値が配列に含まれてるかを確認する関数のこと。

分類:関数 > 配列関数

配列にこの要素が含まれてるか確認したい!ってときに使う。

使い方

書式

in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool

引数

  • $needle(必須):検索文字列。配列に含まれてるか探したい値。
  • $haystack(必須):検索対象の配列。
  • $strict(任意):型チェックしたい場合はTRUE, 不要な場合はFALSEを指定することができる。デフォルトはFALSE。

戻り値:bool型

  • 配列に指定したneedleで指定した値が含まれていればtrue
  • 配列に指定したneedleで指定した値が含まれていなければfalse

 

一例

 

実行結果

 

実行結果から解ること

■基本

第一引数が第二引数の要素に含まれていればtrueを返す。

含まれていなければfalseを返す。

■型を意識すること

文字列と数値を比較する際には注意が必要。

暗黙の型変換の関係で、気付かぬ内に文字列が0で比較されている可能性がある。

上記の例の場合、実際に’アーデン’という文字列はnumbers配列に含まれていないが、in_array(‘アーデン’, numbers)の評価結果はtrue(1)。characters[0]が0として評価され、実質、in_array(0, numbers)として評価されている為にtrue(1)が返された。

型込みで比較したい場合は、第三引数にTRUEを指定すること。

第三引数を指定しない場合はFALSEとして振る舞う。

用途例

エラーハンドリング時

一例として、エラーハンドリング時などに使える。

入っている筈の要素が入っているかの判別をし、入っている場合と入っていない場合に処理を分岐させる。

一意となる配列の作成

私が実際に実務で使ったケースとして「既に存在する配列から、一意となる値のみの配列の作り直し」があった。

文字だけだと解りづらいので実例としては、下記のような要領。

つまり…

foreach文で配列に格納されている要素数分、処理を繰り返す。

in_arrayで、配列の要素と、一意となる値のみの配列を指定する。

  • 初回は配列は空、in_arrayで評価するとfalseになる為、!in_arrayとする。
  • 2回目以降は、既に値の入りつつある配列との比較になり、入っていればfalseを返す為、重複部のみarray_pushをしない。

array_pushで、配列に要素を、一意となる値のみの配列に格納する。

上記は飽くまでも一例だが、foreach文と合わせて「この配列にこの値入ってるか?」を判別するときに使い勝手のよい関数の印象。

参照

独習PHP

公式

PHP: in_array – Manual

PHPを効率的に学習したい場合

スクールを活用するのも有効

PHPを効率的に学習したい場合、スクールを活用するのも有効です。

転職を視野に入れている方、将来に向けて学習を進めている学生の方など、良かったら説明を聴いてみてはいかがでしょうか(説明会の参加は無料です)

オンラインプログラミングスクール「Tech boost

他のスクールについては下記の記事にまとめてあります。他のスクールについても視野に入れたい場合、参考になるかと思います。

【プログラミング】スクール一覧プログラミングのスクールで学ぶことを視野に入れた方向けに、ご紹介します。 転職を視野に入れたい 新卒で入社を視野に入れた...
ダイス
ダイス
ご参考になれば幸いです。
ABOUT ME
ダイス
アラサーSE(20代)。 主な経験は、PGとしてJava(SpringBoot)、C、PHP(Laravel)、VBAがある。SS、UTの経験有り。最近はUI工程を経験中。 IT業界だけでなく、教育業界(予備校での運営スタッフ)での経験有り。 サイトでは、特定の分野に限定せずに幅広く発信していきます。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です