PHP開発を行うとき、よく文字列を連結し、新しい文字列に取得しますね。しかし、大量のデータを連結する場合、遅く成る場合もあります。
今日はPHPで文字列を連結する三つ方法を紹介します。
結合演算子「.(ピリオド)」で連結①
以下のコードようにピリオドで文字列を連結する。3回の実行時間を記録した。
コード:
<?php
$temp=”abcdefghijklmnopqrstuvwxyz”;
$result=””;
for($i=0;$i<100000;$i++) {
$result=$result.$temp;
}
?>
<?php
$temp=”abcdefghijklmnopqrstuvwxyz”;
$result=””;
for($i=0;$i<100000;$i++) {
$result=$result.$temp;
}
?>
実行時間:
22.025232942103
22.123527164447
22.05297508823
結合代入演算子「.=(ピリオドイコール)」で代入し連結②
以下のコードようにピリオドイコールで文字列を連結する。3回の実行時間を記録した。
コード:
<?php
$temp=”abcdefghijklmnopqrstuvwxyz”;
$result=””;
for($i=0;$i<100000;$i++) {
$result .= $temp;
}
?>
<?php
$temp=”abcdefghijklmnopqrstuvwxyz”;
$result=””;
for($i=0;$i<100000;$i++) {
$result .= $temp;
}
?>
実行時間:
3.1827310906438
3.0932961317522
3.1072840421093
配列に格納し、最後にjoin関数で文字列に変換する③
以下のコードようにピリオドイコールで文字列を連結する。3回の実行時間を記録した。
コード:
<?php
$temp=”abcdefghijklmnopqrstuvwxyz”;
$result=””;
$arr=array();
for($i=0;$i<100000;$i++) {
array_push($arr, $temp);
}
$result=join($arr);
?>
<?php
$temp=”abcdefghijklmnopqrstuvwxyz”;
$result=””;
$arr=array();
for($i=0;$i<100000;$i++) {
array_push($arr, $temp);
}
$result=join($arr);
?>
実行時間:
3.2973212679024
3.2759432389112
3.2573683069103
まとめ
テストの実行時間から見ると、ピリオドで連結する方法は遅いですね、ピリオドイコールで連結する方法と配列から文字列に変換する方法は実行時間が同じぐらいです。しかし、大量のデータを連結する場合、一旦配列に入れて、最後にjoin関数で文字列に変更する方法をお勧めです。