配列内の要素を正規表現を使って抽出する「preg_grep関数」について令和2年 6月 2日 作成

00114

概略

配列内に指定の要素が含まれるか否か検索する場合に使用する「in_array関数」、検索する時に正規表現が使用したい場面が出てき「in_array関数」では対応できず。

調べてみると「preg_grep関数」にて問題解決しそうなので、その詳細を見て行く事に。

手段

正規表現を理解している事が前提となるが、構文・使用例をを参考に、配列から対象要素を抽出する。

実装方法

構文

preg_grep(パターン, 検索対象の配列, フラグ[省略可]);

第3引数:

[省略]もしくは[0]にて「マッチする要素を取り出す」、[定数=PREG_GREP_INVERT]にて「マッチしない要素を取り出す」。


使用例

<?php
	$array = array('apple', 'orange', 'lemon');
	if(preg_grep("/^a.*$/", $array)){
	echo "対象要素有り";
}
?>

// 結果
対象要素有り

注意・相違点:

「in_array関数」の返り値は[true][flase]に対し「preg_grep関数」はマッチした要素配列を返します。

<?php
	$array = array('apple', 'orange', 'lemon');
	$result = preg_grep("/^a.*$/", $array);
	var_dump($result);
?>

// 結果
array(1) { [0]=> string(5) "apple" } 

考察

「in_array関数」はよく使用していたが今回初めて「preg_grep関数」なるものを知った。

最後までお読み下さり ありがとうございました。記事はここ迄です。

尚、本記事は作成から「3年以上」経過しています。

記事作成当時と現在の状況等により内容が適切でない場合があります。また、リンク切れが生じている場合もあります事を予めご了承下さい。

お気に入りに登録しますとお気に入り記事を一元管理でき、再度閲覧したい場合等 容易に記事を探し出す事ができますのでご活用下さい。

下段にはコメントを掲載しております。

広告バナー

コメント

頂いたコメントを下記に掲載しております。更に下部にはコメント投稿フォームを設けております。

注意事項を確認・了承した上、コメント投稿お願いいたします。

注意事項に該当するコメントにつきましては、事前告知なしに投稿したコメントの削除を行う場合があります。

予めご了承下さい。

  • 記事内容と無関係なコメント
  • 公序良俗に反するコメント
  • 個人情報や法令違反を含むコメント
  • その他、管理者が不適切と判断したコメント

現在 頂いているコメントはありません

返信先(コメント管理番号)コメントに対し返信する場合のみ
お名前・ハンドルネーム2~32文字内で入力下さい
メールアドレス公開される事はありません
電話番号半角数字+ハイフンで入力下さい
コメント全角500文字内で入力下さい