php in_arrayで配列に指定した値が含まれているか判定する

  • 作成日 2020.12.13
  • php
php in_arrayで配列に指定した値が含まれているか判定する

phpで、in_arrayを使用して配列に指定した値が含まれているか判定するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

in_array使い方

in_arrayを使用すれば、配列に指定した値が含まれているか判定することが可能です。

in_array(値, 配列)
// あればtrue

以下は、配列に指定した値が含まれているか判定するサンプルコードとなります。

<?php

$arr = [1, 2, 3, 4, 5];

if(in_array(3, $arr)){
    echo "ある";
}else{
    echo "ない";
}
// ある

if(in_array(6, $arr)){
    echo "ある";
}else{
    echo "ない";
}
// ない

ただし、数字の「3.0」や文字列の「3 , 3.0」もtrueと判定されてしまいます。
※ifではなく三項演算子で記述してます。

<?php

$arr = [1, 2, 3, 4, 5];

in_array(3, $arr) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ある

in_array(6, $arr) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ない

in_array(3.0, $arr) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ある

in_array("3", $arr) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ある

in_array("3.0", $arr) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ある

数字の「3.0」や文字列の「3 , 3.0」を「false」にしたい場合は、第3引数に「true」を使用します。

<?php

$arr = [1, 2, 3, 4, 5];

in_array(3, $arr, true) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ある

in_array(6, $arr, true) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ない

in_array(3.0, $arr, true) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ない

in_array("3", $arr, true) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ない

in_array("3.0", $arr, true) ? print "ある" . PHP_EOL : print "ない" . PHP_EOL;
// ない