Поместите последние два слова в разный интервал - PHP - PullRequest
1 голос
/ 21 апреля 2020

Я не могу понять следующее: у меня есть возвращенные строки, из которых я хочу поместить первые несколько слов в какой-то тег html, а затем два последних по отдельности, например:

<p>This is a <span class="someclass">returned string</span></p>

Я знаю, что могу разбить строку на массив и сделать каждое слово итерацией, но потом я могу только выяснить, как поместить первые два слова в другой тег html, и мне нужны последние два. Каждая строка может иметь различное количество слов.

Я думал о том, чтобы что-то сделать с количеством массивов, например:

$string = this is a returned string;
$words = explode(" ", $string);
$count = count($words); // $words in this case is 5
$amountofwordsbeforespan = $count - 2;
echo '<p>'.$amountofwordsbeforespan.'<span class="somethingtostyleit">'.SOMETHING THAT PUTS THE LAST TWO HERE.'</span></p>';

Но я думаю, что должен быть более простой способ.

Кто-нибудь знает, какой самый чистый способ выполнить sh это?

1 Ответ

2 голосов
/ 21 апреля 2020

Другой способ использования array_splice(),

<?php
$string = 'this is a returned string';
$words = explode(" ", $string ); 
$last_two_word = implode(' ',array_splice($words, -2 )); 
$except_last_two = implode(' ', $words);
$expected = '<p>'.$except_last_two.' <span class="someclass">'.$last_two_word.'</span></p>';
echo $expected;
?>

DEMO: https://3v4l.org/d3DYq

...