PHP字符串操作

时间:2017-03-04 16:55:10

标签: php string split

我有一个包含字词和关键字的字符串,关键字以"#"开头。并且在他们相应的单词后面的一行或多行。

我有这个字符串:

word1
#keyword1#keyword2#keyword3#keyword4#keyword5
word2
#keyword1#keyword2#keyword3#keyword4#keyword5
#keyword6#keyword7#keyword8
word3
#keyword1#keyword2#keyword3
#keyword4#keyword5
#keyword6#keyword7

我希望获得如下输出:

word1*#keyword1#keyword2#keyword3#keyword4#keyword5
word2*#keyword1#keyword2#keyword3#keyword4#keyword5#keyword6#keyword7#keyword8
word3*#keyword1#keyword2#keyword3#keyword4#keyword5#keyword6#keyword7

我该怎么办?我不知道如何处理这件事。

1 个答案:

答案 0 :(得分:1)

我认为是:

    $str = "word1
    #keyword1#keyword2#keyword3#keyword4#keyword5
    word2
    #keyword1#keyword2#keyword3#keyword4#keyword5
    #keyword6#keyword7#keyword8
    word3
    #keyword1#keyword2#keyword3
    #keyword4#keyword5
    #keyword6#keyword7";

    $results= (preg_split('/(\n)+/', $str));
    $strArr = [];
    $str = "";
    foreach($results as $result) {
        if($result[0] != "#") {
            if(!empty($str)) {
                $strArr[] = $str;
                $str = "";
            }
            $str .= $result . "*";
        } else if($result[0] == "#") {
            $str.= $result;
        }
    }
    $strArr[] = $str;
    var_dump($strArr);

结果:

    array(3) {
      [0]=>
      string(53) "word1
    *#keyword1#keyword2#keyword3#keyword4#keyword5
    "
      [1]=>
      string(81) "word2
    *#keyword1#keyword2#keyword3#keyword4#keyword5
    #keyword6#keyword7#keyword8
    "
      [2]=>
      string(72) "word3
    *#keyword1#keyword2#keyword3
    #keyword4#keyword5
    #keyword6#keyword7"
    }