スポンサーリンク

【PHP】in_array 配列に特定の文字列を含むか確認する

PHP

配列に特定の文字列を含むか判定する関数 in_array の利用例を具体的なコードを交えて紹介します。

スポンサーリンク

まずは in_array を使ってみる

<?php
$fruits = ['apple', 'orange', 'banana'];

var_dump(in_array('apple', $fruits, true)); // trueを返すはず
var_dump(in_array('strawberry', $fruits, true)); // falseを返すはず

実行してみると

$ test.php
bool(true)
bool(false)

予想通りの結果を得ることができます。

in_arrayを使うときは黙って第三引数を付けること

Qiitaでも話題の記事ですが、第三引数をつけないと痛い目に合うことになります。

私もPHPを使い始めた頃は何度痛い目あったことやら。

第三引数の役割

三番目のパラメータが true に設定された場合、 in_array() はも確認するようになります。

デフォルトは false であるため、第三引数に true をセットしないと型を見ることなく比較することになります。

簡単な実験をしてみます。

<?php
$numbers = [0, 1, 2, 3, 4, 5];

var_dump(in_array(3,      $numbers)); // trueを返すはず
var_dump(in_array('犬', $numbers)); // falseを返すはず

このコードを実行してみると

$ test.php

bool(true)
bool(true)

“犬”$numbers にいないワンッ!!

となり、in_array を使う時は黙って第三引数をつける意味が理解できました。

参考

コメント

タイトルとURLをコピーしました