PHP 配列に特定の値があるかチェックする方法 / in_array関数

PHPの「指定した配列要素数ごとに分割する方法」についてざっくり解説します。
詳細はPHPマニュアルを確認してください。

サンプルコード上に出てくるvar_dumpの使い方はこちらの記事を参考にしてください!

https://akeoblog.com/vardump/
目次

1. in_array関数

書き方

in_array(①, ②)

  1. 探したい値
  2. 検索対象の配列

2. 使い方

サンプルコード(文字列のチェック)

<?php

$fruits = ["apple", "banana", "orange"];

//配列内に"apple"という値が入っているかチェック
$result = in_array("apple", $fruits);

var_dump($result);
このコードの実行結果はこちら
bool(true)

bool型で「true」と出力されました!

つまり、、、
『$fruitsという配列には「apple」という文字が入っている』
ということになります!

ここから先、ちょっとだけ重要です!!

お次は「数字の値が入った配列の場合」を確認していきましょう!!!

サンプルコード(数字のチェック)

<?php

$numbers = [1, 2, 3, 4];

//文字列の「3」をチェックする
$mojiCheck = in_array("3", $numbers);

//数字の「3」をチェックする
$numCheck = in_array(3, $numbers);

var_dump($mojiCheck);
var_dump($numCheck);
このコードの実行結果はこちら
//文字列の「3」をチェックした結果
bool(true)

//数字の「3」をチェックした結果
bool(true)

ん??

って思いませんか??

文字列の「3」も数字の「3」もtrueの判定になってしまいましたね。

このままの書き方だと、データ型まではチェックしないということです!!

データ型、、、って何??

と思った方はこちらをチェックしてください^^

https://akeoblog.com/model/

ということで、どうすれば良いのか。

結論から言うと、第3引数にtrueを記述すればOKです!!

詳細は下記のコードを確認してください!!

サンプルコード(データ型までチェックする方法)

<?php

$numbers = [1, 2, 3, 4];

//文字列の「3」をチェックする
$mojiCheck = in_array("3", $numbers, true);

//数字の「3」をチェックする
$numCheck = in_array(3, $numbers, true);

var_dump($mojiCheck);
var_dump($numCheck);
このコードの実行結果はこちら
//文字列の「3」をチェックした結果
bool(false)

//数字の「3」をチェックした結果
bool(true)

文字列の「3」をチェックした場合は「false」になりましたね!!

よかったらシェアしてね!
目次