douman6245 2012-03-31 00:23
浏览 36
已采纳

使用“NO_EMPTY”选项进行爆炸,有助于获得更快的功能

Basically I have this string

$str="word1    word2   word3";

I need

array(
  'word1',
  'word2',
  'word3'
);

I made this function:

function explodeStrict($delimiter,$string) {
    return preg_split("/{$delimiter}/",$string,null,PREG_SPLIT_NO_EMPTY);
}

But I need it to be fast. And this function is 2x slower than a simple explode(); (within a 1mil loop)
I have tried a vanilla style parsing each chars but it gets 7x slower than the explode();

Can you imagine a function as fast as explode that ignores empty elements?

With my function a 1milion loop takes 3.9 sec. Explode take 2 sec

Thanks

  • 写回答

3条回答 默认 最新

  • douwuli4512 2012-03-31 00:27
    关注
    $str = 'word1    word2   word3';
    $str = strtok($str, ' ');
    
    $x = array();
    while ($str !== false)
    {
      $x[] = $str;
      $str = strtok(' ');
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上