PHPのpreg_split関数で文字列を分割して配列にするサンプルです。
目次
説明 | preg_split関数 |
カンマで区切る | |
半角スペースで区切る | |
区切り文字が複数ある場合 | |
文字列で区切る | |
年月日のスラッシュで区切る |
preg_split関数
array preg_split ( string $正規表現のパターン , string $入力文字列 [, int $数値 = -1 [, int $flags = 0 ]] ) |
- 正規表現で文字列を分割します。
- 戻り値は配列です。
- 3つ目の引数(数値)は、分割する数を指定します。省略可能です。0と-1は制限が無いことを意味します。
- 以下は、PHPマニュアルのpreg_split関数のリンクです。
http://php.net/manual/ja/function.preg-split.php
カンマで区切る
<?php
$str1 = "赤,黄,青";
$array1 = preg_split("/,/",$str1);
foreach($array1 as $a){
echo $a; //赤 黄 青
}
echo $array1[0]; // 赤
?>
5行目は、文字列をカンマで区切って配列にしています。
半角スペースで区切る
<?php
$str1 = "赤 黄 青";
$array1 = preg_split("/\s/",$str1);
foreach ($array1 as $a){
echo $a; //赤 黄 青
}
echo $array1[0]; // 赤
?>
5行目は、文字列を半角スペースで区切って配列にしています。(円記号+Sです)
区切り文字が複数ある場合
<?php
$str1 = "あ,い:う,え";
$array1 = preg_split("/[,:]/",$str1);
print_r($array1);//Array ( [0] => あ [1] => い [2] => う [3] => え )
foreach ($array1 as $a){
echo $a; //あ い う え
}
echo $array1[0]; // あ
?>
5行目の[,:]は、カンマ(,)またはコロン(:)という正規表現です。
角括弧([])でくくって、その中にカンマとコロンを入れます。ORの意味になります。
文字列で区切る
<?php
$str1 = "AAbbAA";
$array1 = preg_split("/bb/",$str1);
print_r($array1);//Array ( [0] => AA [1] => AA )
foreach ($array1 as $a){
echo $a; //AA AA
}
echo $array1[0]; // AA
?>
5行目は、文字列bbで分割します。
正規表現のパターンにiオプション(preg_split("/bb/i",$str1))を使用すると大文字と小文字の区別をしなくなります。
年月日のスラッシュで区切る
<?php
$str1 = "2020/05/21";
$array1 = preg_split("/\//",$str1);
print_r($array1);//Array ( [0] => 2020 [1] => 05 [2] => 21 )
foreach ($array1 as $a){
echo $a; //2020 05 21
}
echo $array1[0]; // 2020
?>
5行目は、スラッシュで分割します。
区切るスラッシュの前にバックスラッシュを入れます。
リンク
関連の記事
PHP 正規表現で数値を返す(preg_match)
PHP 文字列を置き換える(str_replace/preg_replace)