【发布时间】:2016-05-11 19:47:38
【问题描述】:
我使用此代码显示字符串中的第一个字母,其中$atit 是该字符串的数组,结果必须类似于“R. & B. & T.”。但是此代码显示的结果类似于“R. & B. & T. &”。
可以去掉最后一个“&”吗?我尝试在echo 行中使用rtrim,但它删除了所有“&”,而我只需要删除最后一个。
foreach ($atit as $ati) {
$pieces = explode(' ', $ati);
$otw = preg_replace('/\W\w+\s*(\W*)$/', '$1', $pieces);
$acronym = "";
foreach ($otw as $w) {
$acronym .= $w[0].'. ';
}
$bla = $acronym.' & ';
echo $bla;
}
我认为这是foreach 的问题,但我无法弄清楚。请问有什么建议吗?
更新:
数组中的每个条目都由几个单词组成,因此上面的代码旨在显示除每个条目中的最后一个单词之外的所有单词的首字母。
例子:
$atit = ["Right now", "Behind you", "This is the time"];
所以上面的代码将首先删除每个数组条目中的最后一个单词,然后获取并显示其中其余单词的第一个字母,就像这样 (R. & B. & T. I. T)。但问题是它在末尾添加了一个额外的“&”(R. & B. & T. I. T &)。
【问题讨论】:
-
$bla[] = $acronym;并在循环后回声 implode(' & ', $bla);
-
你能发一个数组的样本吗?
-
您能否发布一个完整的可重现示例,包括
R. & B. & T.的来源?和/或您的rtrim用法,应该可以做到。 -
其实数组是从wordpress函数代码
wp_get_object_terms获取当前帖子相关的词条 -
问题已更新
标签: php arrays foreach character-trimming