PHP 切割字串常常使用 explode (以前都使用 split),如果已經確定要取最後的值,或者某個值,要怎麼快速做到呢?
PHP explode 切割字串 快速取得最後一個值
以往常見的寫法,都會是先計算陣列大小,然後直接抓最後一個值,如下範例:
<?php $tmp = explode(',', '1,2,3'); $last = $tmp[count($tmp) - 1]; echo $last; ?>
不過既然是陣列,還有下述兩種作法可以參考看看:
取得最後一個值
<?php $last = end(explode(',', '1,2,3')); echo $last; ?>
<?php $last = array_pop(explode(',', '1,2,3')); echo $last; ?>
依照上述程式直接跑速度測試,各跑 10000000 所耗費的秒數:
- count spend: 6.0898230075836 secs
- end spend: 8.9361491203308 secs
- array_pop spend: 9.2295389175415 secs
但是若將 end、array_pop 不要直接使用,而是用 $tmp 接收,再來 end、array_pop 所耗費的時間如下:
- count spend: 5.5644431114197 secs
- end spend: 4.5907559394836 secs
- array_pop spend: 5.0118000507355 secs
註:時間越短越好