🐥

PHP 指定した値が存在するか確認

2022/03/06に公開

はじめに

指定した文字や配列が、検索対象の中にあるかどうか、良く見る関数なので、簡単にまとめていきます。

配列の中から特定の値を探す

in_array

in_array(探したい値, 検索対象の配列, 型チェックするか)

上記の記述で探したい値が配列の中にあれば、true、なければfalseを返す。
if文で使用されることが多い。

基本例文

$data = [1, 2, 3];
if(in_array("1", $data)){
	echo "これはテストデータです";
}

//出力結果
これはテストデータです

型チェックを入れた場合

$data = [1, 2, 3];
if(in_array("1", $data)){
	echo "これはテストデータです";
}

//出力結果
第三引数のtrueによって、1"1"の型チェックを行うため、何も表示されない
array_search(探したい値, 検索対象の配列, 型チェックするか)

上記の記述で、探したい値が配列の何番目にあるかを確認し、その配列のインデックスを返す。
なければfalseを返す。

基本例文

$data = ["test", "dev", "prod"] ;
$result = array_search("dev", $data);
echo $result;

//出力結果
1
// devが配列のインデックス1番目にある為

型チェックも可能。

文字列の中から特定の値を探す

mb_strpos

mb_strpos(検索対象の文字列, 検索したい文字)

上記により検索したい文字が検索対象の文字列の何番目か、インデックスを返す。

$result = mb_strpos("テスト", "テ");
echo $result;

// 出力結果
0

補足

mb_で始まるマルチバイト関数がエラーになることがある。

Uncaught Error: Call to undefined function

この場合、PHPの設定ファイル(php.ini)では、この関数が無効になっている可能性が挙げられる。

さいごに

今の開発現場では、in_arrayよく見るケース。
引き続き、開発でのアウトプットしていきます。

Discussion