🐥
PHP 指定した値が存在するか確認
はじめに
指定した文字や配列が、検索対象の中にあるかどうか、良く見る関数なので、簡単にまとめていきます。
配列の中から特定の値を探す
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
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