字符串替换的问题,请教高手

digihero 2009-04-17 02:40:33

数组a
$a = array($aaa,$bbb,$ccc); 数组内的值数量不固定

字符串
$b = 'test %s and test %o and %s';

要将数组中的值依次附加在‘%’前面,假设$a中只有两个值,那就不管$b中的第三个值,反之亦然

结果应该是这样
$b = 'test $aaa%s and $bbb%o and $ccc $s';

请问各位有没有什么好的方法。我想了两个方案,感觉都有点欠缺。个人比较追求完美,希望能以最节省资源及最简洁的方法来实现
...全文
105 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zijian_Zhang 2009-04-17
  • 打赏
  • 举报
回复
学习了.顶一下,支持
phpboy 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 helloyou0 的回复:]
PHP code$a=array(1,2,3);$b='test %s and test %o and %s';echostr_replace('&&&&','%',vsprintf(str_replace('%','%s&&&&',$b),$a));

[/Quote]

顶6楼,学习了....
skycc999 2009-04-17
  • 打赏
  • 举报
回复
2楼、5楼的顶起来!

outou 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 phpBoy005 的回复:]
PHP code

$a = array(111,222,333);

$b = 'test %s and test %o and %s ';

$b = explode( '%', $b );

foreach( $b as $key => $var )
{
if( !empty( $a[$key] ) )
{
$b[$key] = $var.$a[$key];
}
}

$b = implode( "%", $b );

echo $b;





测试过了,可以...
[/Quote]

没问题。
helloyou0 2009-04-17
  • 打赏
  • 举报
回复

$a = array(1,2,3);
$b = 'test %s and test %o and %s ';

echo str_replace('&&&&','%',vsprintf( str_replace('%','%s&&&&',$b), $a));

phpboy 2009-04-17
  • 打赏
  • 举报
回复


$a = array(111,222,333);

$b = 'test %s and test %o and %s ';

$b = explode( '%', $b );

foreach( $b as $key => $var )
{
if( !empty( $a[$key] ) )
{
$b[$key] = $var.$a[$key];
}
}

$b = implode( "%", $b );

echo $b;



测试过了,可以...
bookmoth 2009-04-17
  • 打赏
  • 举报
回复
顶唠叨
dzxccsu 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xuzuning 的回复:]
$bb = split('%', $b);
for($i=0; $i <min(count($a),count($bb)); $i++) {
$bb[i] .= $a[i];
}
$o = join('%', $bb);
[/Quote]
顶唠叨!
xuzuning 2009-04-17
  • 打赏
  • 举报
回复
$bb = split('%', $b);
for($i=0; $i<min(count($a),count($bb)); $i++) {
$bb[i] .= $a[i];
}
$o = join('%', $bb);
digihero 2009-04-17
  • 打赏
  • 举报
回复
哈,问题当时可能没有描述太清楚。要在%s 后面还要添加东西。
不过这个方案我还是弄出来了,用正则搜索,然后执行函数返回结果。

楼上的两位还是非常感谢的。尤其是3楼的
wxq4100798 2009-04-17
  • 打赏
  • 举报
回复
str_replace,preg_replace都可以吧,就一个函数,你看下手册就知道了
digihero 2009-04-17
  • 打赏
  • 举报
回复
另外,还有,
结果中的$aaa%s 中的%s可以省略 其它的不能省略

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧