Как взорвать строку обратно из второго или третьего разделителя строк? - PullRequest
0 голосов
/ 30 мая 2018

Как я могу получить 800-555 из этого 800-555-5555 с 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 ]

0 голосов
/ 30 мая 2018

Это работает для меня:

$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
0 голосов
/ 30 мая 2018

Implode, explode и array_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

0 голосов
/ 30 мая 2018

Выполнение конкатенации индексов уже сгенерированного массива является для вас простым способом.

Пример кода

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