首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >strreplace for space?

strreplace for space?
EN

Stack Overflow用户
提问于 2011-09-12 16:40:47
回答 5查看 135关注 0票数 1

例如,我有:

代码语言:javascript
复制
$one = 'aaa bbb ccc sss ddd www';
$two = '### !!!';
$three = '111 222 333 444';

我想在php函数中显示每个字符串最多3个单词:

代码语言:javascript
复制
echo functioncut($one) = aaa bbb ccc
echo functioncut($two) = ### !!!
echo functioncut($three) == 111 222 333

感谢您的帮助!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-12 16:45:29

使用explode,您可以获得一个单词数组:

代码语言:javascript
复制
$allwords = explode(' ', $one);

使用array_chunk可以轻松地获取前三个元素

代码语言:javascript
复制
$chunks = array_chunk($allwords, 3);
$firstthreewords = $chunks[0];

至少,使用implode来获取一个字符串:

代码语言:javascript
复制
$string = implode(' ', $firstthreewords);

将其封装到单个函数中将为我们提供:

代码语言:javascript
复制
function functioncut($v){
  $allwords = explode(' ', $v);
  $chunks = array_chunk($allwords, 3);
  return implode(' ', $chunks[0]);
}

或者(简短易懂,但有点难读):

代码语言:javascript
复制
function functioncut($v){
  return implode(' ',array_shift(array_chunk(explode(' ', $v), 3)));
}
票数 6
EN

Stack Overflow用户

发布于 2011-09-12 16:46:33

我不知道有任何PHP函数可以做到这一点。但是你可以试试这个:

代码语言:javascript
复制
function wordSplit( $string, $number ) {
    return implode( ' ', array_slice( explode( ' ', $string ), 0, $number ) );
}

echo wordSplit( 'aaa bbb ccc sss ddd www', 3 ); // aaa bbb ccc
票数 3
EN

Stack Overflow用户

发布于 2011-09-12 16:45:53

使用explode将字符串按空格拆分,然后仅回显数组中的前3个字符...

代码语言:javascript
复制
$one = 'aaa bbb ccc sss ddd www';
$r1 = explode(' ',$one);
echo $r1[0].' '.$r1[1].' '.$r1[2];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7385238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档