【问题标题】:Put last two words in different span - PHP将最后两个单词放在不同的范围内 - PHP
【发布时间】:2020-08-04 00:49:01
【问题描述】:

我无法弄清楚以下内容:我有返回的字符串,我想将前几个单词放在一些 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>';

但我认为应该有更简单的方法。

有人知道实现此目的最干净的方法是什么吗?

【问题讨论】:

  • array_pop 为您获取最后一个元素,因此只需调用两次即可从拆分后的数组中获取并删除最后两个单词 - 并再次使用 implode 其余的单词来填充第一部分...?
  • 我 99.99% 肯定你在这里做了一些有趣的事情。为什么你会假设它总是你想要的最后两个词?
  • @cbroe 谢谢,我会调查一下。
  • @roborobok 我不只是假设,但它是这样设计的。设计特定部分的最后两个词有一些不同的样式,所以这就是为什么我需要它们。不幸的是,我无法预测每个字符串中有多少个单词
  • 只是好奇,你能说出那个字符串是什么,最后两个词是什么吗?

标签: php html arrays explode


【解决方案1】:

使用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;
?>

演示: https://3v4l.org/d3DYq

【讨论】:

  • @Maartje 很高兴它能以某种方式帮助你:)
猜你喜欢
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多