2025年05月15日

PHP関数:preg_match_all()


この関数の説明

preg_match_all() は、文字列を正規表現で検索し、マッチする物を総て取り出すPHP関数です。

preg_match()が1つ見つけると停止するのに対し、この関数は停止しません。

①配列にある電話番号を総て取りだす

 


関数

preg_match_all( $search , $data , $array )

 


パラメータ

$search(正規表現文字)必須

取り出す内容を正規表現で指定します。

 

$data (文字列)必須

サーチする文字列を指定します。

 

$array (配列)必須

取り出したデータを入れる配列名を指定します。

 


戻り値

マッチした場合に 1 を返します。 マッチしなかった場合は 0 を返します。

 


利用例

①配列にある電話番号を取りだす。

<?php 
	$tel_array  = ['電話番号:080-992-1234' , '電話番号:03-1234-1234' , '電話番号:050-912-1234' ];
	$tel_string = implode( ',' , $tel_array );  // 配列を文字列に変換
	preg_match_all( '/0\d{1,2}-\d{3,4}-\d{4}/' , $tel_string , $tel_list);
	echo implode( ',' , $tel_list[0] ).'<br>';
?>
<pre>
	<?php print_r($tel_list);?>
</pre>

■3行目

implode()で、配列を文字列に変換しています。

■4行目

文字列を電話番号ルールで取り出して配列に入れています。

■5行目

配列の0番目の配列をimplode()で、文字列に変換しechoしています。

8行目でprint_r()した構造を見ると0番目の中に添字配列で取り出されている事が確認できます。

■上記を実行した結果は下記になります。

080-992-1234,03-1234-1234,050-912-1234

   Array
(
    [0] => Array
        (
            [0] => 080-992-1234
            [1] => 03-1234-1234
            [2] => 050-912-1234
        )

)

 


関連情報

関連関数は 正規表現で操作する関数 を参照してください。

 


関数一覧
  • 01.PHPとWordPressプログラム
  • 02.PHPの出力コマンド
  • 03.PHPの変数規則と文字連結
  • 04.PHPのif文
  • 05.PHPの配列とループ処理
  • 06.PHPのオブジェクト
  • 07.PHPの関数
  • 08.PHPの正規表現
  • 09.PHPファイルや関数の読み込み
  • 10.PHPのフォーム操作
  • 11.オートコンプリートとは?
  • array_keys()
  • array_reverse()
  • checkdate()
  • count()
  • date()
  • echo
  • empty()
  • explode()
  • implode()
  • in_array()
  • intval()
  • isset()
  • preg_match_all()
  • preg_match()
  • preg_replace()
  • preg_split()
  • print_r()
  • session_id()
  • session_start()
  • sprintf()
  • str_replace()
  • strpos()
  • trim()
  • var_dump()