2017-07-25 66 views
1

到目前爲止:我正在做一個preg_match_all搜索和我的輸出:唐納德,雛菊,休伊,杜威和路易

代碼是這樣的:

$duckburg = array(); 
preg_match_all($pattern,$subject,$match); 
$duckburg['residents'] = $match[1]; 
print_r($duckburg['residents']); 

輸出:

Array ([residents] => Array ([0] => Donald [1] => Daisy [2] => Huey [3] => Dewey [4] => Louie) 

我的問題:我想補充到每個字符串「鴨子」

使用此幫助-ST環:$lastname = " Duck"

輸出應該是:

Array ([residents] => Array ([0] => Donald Duck [1] => Daisy Duck [2] => Huey Duck [3] => Dewey Duck [4] => Louie Duck) 

我試圖(但它不工作):

preg_match_all($pattern,$subject,$match); 
$matchy = $match.$lastname; 
$duckburg['residents'] = $matchy[1]; 
print_r($duckburg['residents']); 

是否有可能改變匹配字符串它進入前陣?感謝您的幫助!

+0

使用'$ duckburg [ '居民'] = $ matchy;''不是'$ duckburg ['居民'] = $ matchy [1]; ' –

回答

0

Array_map爲這樣的操縱該工具:

$match = Array ('residents' => Array ('Donald','Daisy','Huey','Dewey','Louie')); 
$duckburg['residents'] = array_map(function($n) { return "$n Duck"; }, $match['residents']); 
var_dump($duckburg); 

輸出:

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

謝謝。這使我指出了正確的方向! – hifi01

0

迭代陣列之上是一個可能的選項:

$lastname = " Duck"; 
preg_match_all($pattern,$subject,$matches); 
foreach($matches as $key => $val){ 
    $duckburg['residents'][$key] = $val . $lastname; 
} 
print_r($duckburg['residents']);