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

时间:2018-05-30 15:19:21

标签: php explode

如何通过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),我的字符串是一篇完整的文章...我希望如果这篇文章第二次发表在文章中,str_word_count()会计算,文本中有多少个字符到第二个(或者第三个,如果我想要的话)$word ... < / p>

所以我想要那个,我从第二个“点击”回到字符串。

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

$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 个答案:

答案 0 :(得分:1)

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

示例代码

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

这对我有用:

$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