如何从第二个或第三个字符串定界符中分解字符串?

How to explode the string back from the second or third string delimiter?

如何使用 explode() 从这个 800-555-5555 获得 800-555?

这是一个很好的例子:

$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),我的字符串是一篇完整的文章.. .我想要的是,如果这个词第二次出现在文章中,with str_word_count() 会算,文本中有多少个字符是第二次(或者第三次,如果我想要的话)$word.. .

所以我想要那个,我得到从第二个 "hit" 到后面的字符串。

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

$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

连接已生成的数组索引对您来说是一种简单的方法。

示例代码

echo $phoneChunks[0]."-".$phoneChunks[1];

这对我有用:

$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

Implodeexplodearray_slice.
我使用 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