閲覧数:1302
投稿日: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"
}