首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >preg_match_all:更改字符串$match

preg_match_all:更改字符串$match
EN

Stack Overflow用户
提问于 2017-07-25 11:20:31
回答 2查看 139关注 0票数 1

到目前为止:我正在做一个preg_match_all搜索,我的输出是:唐纳德、黛西、休伊、杜威和路易

代码是这样的:

代码语言:javascript
运行
复制
$duckburg = array();
preg_match_all($pattern,$subject,$match);
$duckburg['residents'] = $match[1];
print_r($duckburg['residents']);

输出:

代码语言:javascript
运行
复制
Array ( [residents] => Array ( [0] => Donald [1] => Daisy [2] => Huey [3] => Dewey [4] => Louie )

我的问题是:我想在每一个字符串中加上“鸭子”。

使用此帮助字符串:$lastname = " Duck"

产出应是:

代码语言:javascript
运行
复制
Array ( [residents] => Array ( [0] => Donald Duck [1] => Daisy Duck [2] => Huey Duck [3] => Dewey Duck [4] => Louie Duck ) 

我试过了(但不起作用):

代码语言:javascript
运行
复制
preg_match_all($pattern,$subject,$match);
$matchy = $match.$lastname;
$duckburg['residents'] = $matchy[1];
print_r($duckburg['residents']);

是否有可能在匹配字符串进入数组之前更改它?谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-25 12:03:14

地图是这种操作的工具:

代码语言:javascript
运行
复制
$match = Array ( 'residents' => Array ('Donald','Daisy','Huey','Dewey','Louie'));
$duckburg['residents'] = array_map(function($n) { return "$n Duck"; }, $match['residents']);
var_dump($duckburg);

输出:

代码语言:javascript
运行
复制
array(1) {
  ["residents"]=>
  array(5) {
    [0]=>
    string(11) "Donald Duck"
    [1]=>
    string(10) "Daisy Duck"
    [2]=>
    string(9) "Huey Duck"
    [3]=>
    string(10) "Dewey Duck"
    [4]=>
    string(10) "Louie Duck"
  }
}
票数 0
EN

Stack Overflow用户

发布于 2017-07-25 11:44:00

迭代数组是一种可能的选择:

代码语言:javascript
运行
复制
$lastname = " Duck";
preg_match_all($pattern,$subject,$matches);
foreach($matches as $key => $val){
    $duckburg['residents'][$key] = $val . $lastname;
}
print_r($duckburg['residents']);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45301748

复制
相关文章

相似问题

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