php strtok替代字符串分割

时间:2018-09-06 04:10:57

标签: php

推荐使用

strtok,它优于其他功能,例如在必须拆分字符串时爆炸,因为它一次只返回一个片段,而每次后续调用都返回下一个片段。

但是在这里,用第二种方法代替strtok(第一种方法)更好吗?我保留第二个优先级,因为它的编码较少,但不了解大字符串的性能和内存消耗。哪一个最好?

$stdt='4-50';    

使用strtok的第一种方式

$stdt_cut = strtok( $stdt, '-' );
$stdt_final = strtok( '' );
echo $stdt_final;
//output is 50

使用substr和strstr的第二种方式

echo substr(strstr($stdt, '-'), 1)
//output is 50

1 个答案:

答案 0 :(得分:1)

strstr的原型是:

string strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] )

和功能

  

从第一个(包括第一个)开始返回干草堆字符串的一部分   到干草堆尽头的针的发生。

因此基于此:$stdt='4-50';
 在这一步:strstr($stdt, '-');

您已经有“ -50”; 因此您可以有效地使用:

substr(strstr($stdt, '-'), 1);

ltrim(strstr($stdt, '-'),'-');

但是在您看来,真正快速的方法可能是因为strpos被声明比strstr消耗更少,速度更快,并且还因为您使用了所有相同的substr:

substr($stdt,strpos($stdt,'-')+1)