V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
haython
V2EX  ›  PHP

PHP 如何分割一个特别长的字符串?

  •  
  •   haython · 2014-07-04 13:39:48 +08:00 · 3555 次点击
    这是一个创建于 3591 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有1千万个数字用逗号连接的的长字符串,怎么分割成数组,而且不至于内存超出默认的128M的限制?
    5 条回复    2014-07-04 16:37:17 +08:00
    alex321
        1
    alex321  
       2014-07-04 14:15:43 +08:00
    你是说 csv 文件咩?
    shiny
        2
    shiny  
       2014-07-04 14:36:50 +08:00
    1千万个数字不算很多吧?
    如果超过内存限制就用 fread 一点点读,读到逗号就把之前读的数字添加到数组里。
    不过数组仍有超过内存限制的可能。
    ferock
        3
    ferock  
       2014-07-04 14:49:42 +08:00
    关键是读来干嘛?什么信息会有1000W 个?
    54xiaobin
        4
    54xiaobin  
       2014-07-04 14:54:52 +08:00
    1kw个数字分割成数组干嘛。。。
    sampeng
        5
    sampeng  
       2014-07-04 16:37:17 +08:00
    用刀切割。。。哈哈跑题了。
    1千万个数字。用逗号分割。。数字有多大?
    算平均10位好吧。加个逗号1
    (11*10000000)/1024/1024=104M.没超过默认限制over。。。但是。可能会超过处理时间30s。因为不知道你要干什么。。。你这个问题比较纠结。。只说怎么切。又不说干嘛用。。让我们怎么帮忙呢?

    高端点的可以先把这个字符串文本切分成10个小文件。然后再做处理。
    如果只是为了分析1千万个数字。。为毛要用php。。。。不理解= =!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2316 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:11 · PVG 17:11 · LAX 02:11 · JFK 05:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.