2024年06月14日
PHP関数:preg_split()
この関数の説明
PHP関数の preg_split() は、文字列を正規表現のデリミッタで分割し、配列に変換する関数です。
関数
preg_split( $separator , $data , $limit )
パラメータ
$separator(正規表現文字)必須
正規表現で表した区切り文字
$data(文字列)必須
変換対象の文字列
$limit (整数)(オプション)
作成する配列の数
5個の配列ができるデータで「3」を指定すると、3番目に3,4,5の残りデータが入る。
戻り値
$data の内容を $separator で分割した配列を返します。
分割できない場合は、配列の0番目に総てのデータが入ります。
利用例
①「,」で区切られた文字列を配列に変換
<?php $data = '68,70,72,74,76'; $separator = '/,/'; $size_array = preg_split($separator , $data); echo $data; ?> <pre> <?php print_r($size_array);?> </pre>
■下記が表示されます。
68,70,72,74,76
Array ( [0] => 68 [1] => 70 [2] => 72 [3] => 74 [4] => 76 )
②色々な空白で区切られて文字列を配列に変換
<?php $data = '68 70 72 74 76';// 半角スペース、タブ、改行が入っています。 $separator = '/[\s]+/'; $size_array = preg_split($separator, $data); echo $data; ?> <pre> <?php print_r($size_array);?> </pre>
■上記の処理は、どの様な空白文字が何個入っていても、すべてを取り除いて配列に変換してくれる処理になります。
■結果は下記になります
68 70 72 74 76
Array ( [0] => 68 [1] => 70 [2] => 72 [3] => 74 [4] => 76 )
③姓名を分割し、姓と名で取り出す
姓名の区切りが「スペース」、「タブ」、「全角スペース」のいずれでも、分割して取り出します。
<?php $input_name = '山田 太郎'; //区切りは「スペース」、「タブ」、「全角スペース」のいずれでも可 list($last_name , $first_name) = preg_split( '/[\s ]+/' , $input_name); echo $last_name.'<br>'; echo $first_name; ?>
■3行目: preg_splitの結果を配列ではなくlist関数で受け取っています。
■結果は下記になります。
山田
太郎
関連情報
関連関数は 正規表現で操作する関数 を参照してください。