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

百般思念 提交于 2019-12-11 16:42:44

问题


How can I get the 800-555 from this 800-555-5555 with explode()?

Here is a good example:

$rawPhoneNumber = "800-555-5555"; 

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

But how can I get the 800-555?

Okay, I see, here need more comment... So, this is only an example... In real I add a word (now $word) to string delimiter and my string is a full article... I want that, if this word second time published in the article, with str_word_count() will count, how many characters was in the text to the second (or third, if I want that) $word...

So I want that, I get the string from the second "hit" to back.

Okay, here is a more obvious example:

$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

So I want that $whatiwant = oh my god, thank you the lot of downvotes


回答1:


Implode, explode and array_slice.
I use array_slice because that makes the function more dynamic.

Now you can just set the $items to get the number of items you want.
If you set a negative value it counts backwards.

$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

You could also have an start variable to make the start position dynamic.

https://3v4l.org/XD0NV




回答2:


Doing concatenation of already generated array's indexes is the simple way for you.

Sample Code

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



回答3:


This is working for me:

$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);

Output:

800-555


来源:https://stackoverflow.com/questions/50608305/how-to-explode-the-string-back-from-the-second-or-third-string-delimiter

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!