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 找人不需要人工智能回答的gamit解算后做形变分析
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥15 统计大规模图中的完全子图问题
  • ¥15 使用LM2596制作降压电路,一个能运行,一个不能
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路
  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错