【问题标题】:Is it possible to have 3 delimiters for the explode function爆炸功能是否可以有3个分隔符
【发布时间】:2011-06-01 20:57:09
【问题描述】:

选项 1(空格)

keyword keyword keyword

选项 2(换行符)

keyword
keyword
keyword

选项 3(逗号)

keyword, keyword, keyword

或者我必须使用拆分功能吗?如果有,怎么做?

【问题讨论】:

  • 不,你需要使用preg_split之类的东西,因为split实际上已被弃用。

标签: php split explode


【解决方案1】:

尝试使用preg_split,但请注意,这会立即在您的所有示例中爆炸。

$parts = preg_split("/[ ,\n]/", $string);

编辑:对于您给出的第三个示例,您将获得空数组元素,因为它在逗号和空格上都被拆分。将$parts 传递到array_filter() 以去除这些内容。

【讨论】:

  • PREG_SPLIT_NO_EMPTY 将忽略空块。
【解决方案2】:

不像preg_split那么简单,但strtok()也是一种选择

【讨论】:

    【解决方案3】:

    str_word_count() 为胜利而战!

    此任务不需要变量分隔符或正则表达式 - 假设所有这些“关键字”都是“单词”...

    代码:(Demo)

    $strings=[
        'keyword keyword keyword',
        'keyword
    keyword
    keyword',
        'keyword, keyword, keyword'
    ];
    foreach($strings as $string){
        var_export(str_word_count($string,1));
        echo "\n";
    }
    

    输出:

    array (
      0 => 'keyword',
      1 => 'keyword',
      2 => 'keyword',
    )
    array (
      0 => 'keyword',
      1 => 'keyword',
      2 => 'keyword',
    )
    array (
      0 => 'keyword',
      1 => 'keyword',
      2 => 'keyword',
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2011-06-24
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      相关资源
      最近更新 更多