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
)
)
関連情報
関連関数は 正規表現で操作する関数 を参照してください。