こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 PHPで指定した値が配列に存在するかどうかを確認できるin_array関数について
- in_array関数とは
- in_array関数を使ったサンプルプログラム
と、丁寧に解説していきます。
目次
前提条件:実行環境
この記事では、PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
PHPのバージョンは、【7.4.6】です。
in_array関数とは
in_array関数とは、指定した値が配列に存在するかどうかをチェックし、その結果がboolで返される関数です。
返り値の場合分けは、下記の通りです。
値が配列に存在していた場合 | true |
---|---|
値が配列に存在していなかった場合 | false |
in_array関数は
- パターン1:オプションを設定する場合
- パターン2:オプションを設定しない場合
の合計2パターンの使い方があります。
それぞれ解説します。
パターン1:オプションを設定する場合
パターン1:オプションを設定する場合は、下記のように
- 第一引数:探したい値
- 第二引数:探す配列
- 第三引数:厳密にするかどうかをboolで指定
を指定すれば、値が配列に存在するかどうかを確認できます。
上記の例だと、変数resultにはfalseが返されます。
第三引数がオプションで、厳密にするかどうかとは、型も一致していることを確認するかという指定ができます。
bool値の意味は下記の通りです。
trueを指定 | 型と値が一致している場合のみ、trueを返す |
---|---|
falseを場合 | 値が一致していれば、trueを返す 型は異なっていても良い |
たとえば
- 第一引数:int型の1
- 第二引数:配列の要素にstring型の1が存在
- 第三引数:true
という場合は、値は同じですが型が異なるためfalseと返します。
パターン2:オプションを設定しない場合
オプションを設定しない場合は、下記のように
- 第一引数:探したい値
- 第二引数:探す配列
を指定すれば、値が配列に存在するかどうかを確認できます。
上記の例だと、変数resultにはtrueが返されます。
パターン2で注意すべきことは、型まで見ていないことです。
オプションを設定しない場合、デフォルトで第三引数には【false】が設定されるためです。
なのでたとえば
- 第一引数:int型の1
- 第二引数:配列の要素にstring型の1が存在
という場合は、型が違っていても値が同じであるためtrueと返されてしまいます。
では、次の章で実際に使ってみます。
in_array関数を解説するプログラムの概要
in_array関数を解説するプログラムでは、
- パターン1:オプションを設定する場合
- パターン2:オプションを設定しない場合
の2パターンでin_array関数を使い、結果を表示させます。
phpプログラムは
C:\xampp\htdocs
配下に、【inarraysample.php】というファイル名で格納しています。
PHPサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php $intarray = array(1, 2, 3, 4); $strarray = array('1', '2', '3', '4'); print('■パターン1:オプションを設定する場合<br >'); if (in_array(2, $intarray, true)){ print('intarrayにint型の2の要素がある<br >'); } else { print('intarrayにint型の2の要素がない<br >'); } if(in_array(2, $strarray, true)){ print('strarrayにint型の2の要素がある<br >'); } else { print('strarrayにint型の2の要素がない<br >'); } print('<br >'); print('■パターン2:オプションを設定しない場合<br >'); if (in_array(2, $intarray)){ print('intarrayに2の要素がある<br >'); } else { print('intarrayに2の要素がない<br >'); } if (in_array(2, $strarray)){ print('strarrayに2の要素がある<br >'); } else { print('strarrayに2の要素がない<br >'); } ?> |
array関数は、配列を初期化する関数です。
array関数の詳細な解説は、こちらの記事をご参考ください。
実行結果
XAMPPを起動して、【http://localhost/inarraysample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
オプションを設定していると型チェックも含めて、設定していなければ値のみで存在の確認が行われていることが確認できました!
まとめ:in_array関数を使ってみよう!
以上がin_array関数についての解説でした!
in_array関数は、配列にとある値が存在するかどうかを確認したいときとても便利なので、ぜひ使ってみてください!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント