閲覧数:1021
投稿日:2020-06-22
更新日:2024-01-30
文字列を「区切り文字(。か.)」で配列へ変換
preg_split使用案と、速度計測比較してみたが、ほとんど差異を感じなかった
http://phpcode.w4c.work/php/status/217
注意点
文字列最後に区切る文字があると、配列にした際、最後の要素に空文字が入る
コード
<?php function explode2U($delimiter1, $delimiter2, $str) { $ary = []; //「分割文字その1」で文字列を分割 $ary1 = explode($delimiter1, trim($str)); //各配列を「分割文字その2」で分割して結合していく foreach ($ary1 as $val) { $ary = array_merge($ary, explode($delimiter2, trim($val))); } return $ary; } $str = '正規表現は必ずしも遅いとは限りません。 Regular expressions are not always slow. 速度を計測してみた方が良いかもしれません。 It may be better to measure the speed.'; $strAry = explode2U('。','.',$str); $strAry = array_diff($strAry, ['']); //空要素削除 var_dump($strAry);
結果
array(4) { [0]=> string(54) "正規表現は必ずしも遅いとは限りません" [1]=> string(39) "Regular expressions are not always slow" [2]=> string(62) " 速度を計測してみた方が良いかもしれません" [3]=> string(37) "It may be better to measure the speed" }