字符串里面的内容如何替换成数组的内容?

原创
2016-06-23 13:45:55 716浏览

比如我有数组
$a=array(0=>sdfs,1=>333,2=>444,3=>sadfsaf)

然后我有一个字符串,字符串内容如下:

今天下午,记者从第三届中华赏石展暨黄蜡石文化博览会新闻发布会上获悉,今年的黄蜡石文化博览会将于11月8日在鹰潭君融国际眼镜城开[abc]2[/abc]展,至11月16日落下帷幕。活动期[abc]1[/abc]间将展销来自全国各地的奇石、化石、矿晶、宝玉石及其工艺品、根雕、陶瓷、古玩、书画、收藏品。为活跃石博会气氛,聚集石博会人气,展会期间,主办方还安排了书法笔会、明星演唱会、啤酒节、眼镜秀等文化活动。

  为了方便观众前去参观,公交21路车在石博会期间[abc]7[/abc]对行驶路线做出调整??从火车站出发,经站江路到林荫西路,再沿鹰西大道直达君融国际黄蜡石古玩大市场。同时,主办方每天也安排专车[abc]4[/abc]在古玩街后门,把参观石博会的观众送到展会现场。

数组的长度,和字符串里面[abc]*[/abc]这个标签的个数是一定相等的。
现在我想按照字符串里面[abc]*[/abc]出现的先后顺序依次替换成数组里面的$a[0].....$a[3]的值。
还有,我如何统计[abc]*[/abc]出现的次数??

即,
把[abc]2[/abc]替换成$a[0]的值 sdfs。,
把[abc]1[/abc]替换成$a[1]的值333
把[abc]7[/abc]替换成$a[2]的值444
把[abc]4[/abc]替换成$a[3]的值sadfsaf

说明:
[abc]2[/abc]这个[abc]*[/abc]之间的一定会正整数,不含其它特殊字符,出现的位置没有规律,




回复讨论(解决方案)

$s = 'sdfs', 1 => '333', 2 => '444', 3 => 'sadfsaf');foreach($a as $v) $s = preg_replace("/\[abc\]\d+\[\/abc\]/", $v, $s, 1);echo $s;
今天下午,记者从第三届中华赏石展暨黄蜡石文化博览会新闻发布会上获悉,今年的黄蜡石文化博览会将于11月8日在鹰潭君融国际眼镜城开sdfs展,至11月16日落下帷幕。活动期333间将展销来自全国各地的奇石、化石、矿晶、宝玉石及其工艺品、根雕、陶瓷、古玩、书画、收藏品。为活跃石博会气氛,聚集石博会人气,展会期间,主办方还安排了书法笔会、明星演唱会、啤酒节、眼镜秀等文化活动。

  为了方便观众前去参观,公交21路车在石博会期间444对行驶路线做出调整??从火车站出发,经站江路到林荫西路,再沿鹰西大道直达君融国际黄蜡石古玩大市场。同时,主办方每天也安排专车sadfsaf在古玩街后门,把参观石博会的观众送到展会现场。

$s = 'sdfs', 1 => '333', 2 => '444', 3 => 'sadfsaf');foreach($a as $v) $s = preg_replace("/\[abc\]\d+\[\/abc\]/", $v, $s, 1);echo $s;
今天下午,记者从第三届中华赏石展暨黄蜡石文化博览会新闻发布会上获悉,今年的黄蜡石文化博览会将于11月8日在鹰潭君融国际眼镜城开sdfs展,至11月16日落下帷幕。活动期333间将展销来自全国各地的奇石、化石、矿晶、宝玉石及其工艺品、根雕、陶瓷、古玩、书画、收藏品。为活跃石博会气氛,聚集石博会人气,展会期间,主办方还安排了书法笔会、明星演唱会、啤酒节、眼镜秀等文化活动。

  为了方便观众前去参观,公交21路车在石博会期间444对行驶路线做出调整??从火车站出发,经站江路到林荫西路,再沿鹰西大道直达君融国际黄蜡石古玩大市场。同时,主办方每天也安排专车sadfsaf在古玩街后门,把参观石博会的观众送到展会现场。
太牛B了,高手。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。