代码之家  ›  专栏  ›  技术社区  ›  Galgóczi Levente

如何将字符串从第二个或第三个字符串分隔符分解回来?

  •  0
  • Galgóczi Levente  · 技术社区  · 7 年前

    我怎么能从这个800-555-5555中得到800-555 explode() ?

    下面是一个很好的例子:

    $rawPhoneNumber = "800-555-5555"; 
    
    $phoneChunks = explode("-", $rawPhoneNumber);
    First chunk = $phoneChunks[0]; //800
    Second chunk = $phoneChunks[1]; //555
    Third Chunk chunk = $phoneChunks[2]; //5555
    

    但是我怎么才能拿到800-555呢?

    好吧,我明白了,这里需要更多的评论…所以,这只是一个例子…实际上,我在字符串分隔符中添加了一个单词(现在是$word),我的字符串是一篇完整的文章…如果这个词第二次发表在文章中, str_word_count() 将计数,文本中有多少个字符到第二个(或第三个,如果我想的话) $word

    所以我想这样,我把绳子从第二个“击中”到后面。

    好吧,这里有一个更明显的例子:

    $text = oh my god, thank you the lot of downvotes, geniuses *.*
    $explode = explode(",", $text);
    $whatiwant = $explode?? // I WANT THE STRING FROM THE SECOND "," TO BACK
    

    所以我想要那个 $whatiwant = oh my god, thank you the lot of downvotes

    3 回复  |  直到 7 年前
        1
  •  1
  •   Hassaan    7 年前

    Implode , explode array_slice .
    我用 数组切片 因为这使得函数更加动态。

    现在你可以设置 $items 以获取所需的项目数。
    如果你设置一个负值,它会倒数。

    $delim = ",";
    $items =2;
    $text = "oh my god, thank you the lot of downvotes, geniuses *.*";
    $whatiwant = implode($delim, array_slice(explode($delim, $text),0,$items));
    Echo $whatiwant;
    

    https://3v4l.org/KNSC4

    您也可以有一个开始变量,使开始位置动态。

    https://3v4l.org/XD0NV

        2
  •  1
  •   Hassaan    7 年前

    对已经生成的数组索引进行连接是一种简单的方法。

    示例代码

    echo $phoneChunks[0]."-".$phoneChunks[1];
    
        3
  •  0
  •   DevOpsSauce    7 年前

    这对我有用:

    $rawPhoneNumber = "800-555-5555";
    
    $phoneChunks = explode("-", $rawPhoneNumber);
    $first_chunk = $phoneChunks[0]; //800
    $second_chunk = $phoneChunks[1]; //555
    $third_chunk_chunk = $phoneChunks[2]; //5555
    
    $portion_array = array($first_chunk, $second_chunk);
    echo implode("-",$portion_array);
    

    输出:

    800-555