【PHP】文字列に特定の文字や数値が含まれているかチェックする方法!

この記事からわかること

  • 文字列の中に特定の値が含まれているチェックする方法
  • 文字ではなく数値存在するか検索
  • 日付に特定の数字がつくか調べる方法
  • 文字列の中に何個特定の値が存在するか
  • 配列の中に指定の値があるかどうか

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

文字列の中に特定の文字があるかどうか

文字列の中に特定の文字があるかどうかをチェックするにはmb_strpos関数を使います。mb_strpos関数対象文字列の中に検索文字列がある場合はその位置を、無い場合はFALSEを返します。

$str = "東京都足立区青井";
$search = "足立区";

$result = mb_strpos($str,$search);

// 文字列の先頭に該当文字があると0を返すので
// falseと===(厳格に比較)で識別する
if($result === false){
    echo "見つかりませんでした";
}else{
    echo $result."番目に見つかりました";
}
mb_strpos(“対象文字列", “検索文字列” );

返り値:int 文字位置 or boolean false

日本語(マルチバイト文字)を対象にする場合はmb_strpos関数を、アルファベットのみの場合はstrpos関数を使います。

公式マニュアル:strpos関数

数値の中に特定の数字があるかどうか

数値の中に特定の数字があるかどうかをチェックするにはpreg_match関数を使います。preg_match関数正規表現を使用してマッチするかどうかを真偽値(正確には1/0)で返します。

例えば「日付に2がつく日はキャンペーン」といった倍数や約数ではなく、対象の数字が入っているかどうかの条件は以下のようにして識別することができます。

$day = 24;

if (preg_match("/2/", (string)$day)){
  echo "2の付く日です";
}else{
  echo "2の付く日ではありません";
}
preg_match(
    string $pattern, // 正規表現パターン
    string $subject, // 対象文字列
    array &$matches = null, //マッチした文字列を格納
    int $flags = 0, //動作フラグ
    int $offset = 0  //検索の開始位置
)
返り値:int or false // マッチした場合は1しなかった場合は0

公式マニュアル:PHP正規表現

文字列の中に何個特定の値が存在するか

対象文字列の中に検索文字列がいくつ含まれているかを取得するにはmb_substr_count関数を使います。

$str = "https://appdev-room.com/php-string-check";

echo mb_substr_count($str,"-");
// 2 
mb_substr_count("対象文字列","検索文字列");

返り値:int 出現回数

公式マニュアル:mb_substr_count関数

配列の中に特定の値があるかどうか調べる

配列の値に特定の値があるか調べるにはarray_search関数を使います。array_search関数配列の値に特定の値があればそのキー値を返します。配列は連想配列でも問題なく動作します。

$array = ['PHP' , 'Javascript' , 'Swift' , 'VBA'];
echo array_search('Swift',$array); 
// 結果:2

$array = ['PHP' => 'Laravel' , 'Javascript' => 'Vue.js', 'Swift' => 'BLANK' , 'VBA' => 'BLANK'];
echo array_search('BLANK',$array); 
// 結果:Swift

同じ値が複数ある場合は最初にマッチしたキー値を返します。

array_search(
  mixed $needle, // 検索値
  array $array,  // 対象配列 
)
返り値:int or string or false

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index