ホームページ  >  記事  >  バックエンド開発  >  PHP配列1対1置換実装コード

PHP配列1対1置換実装コード

高洛峰
高洛峰オリジナル
2016-12-01 10:28:16926ブラウズ

コードをコピーする コードは次のとおりです:
header("Content-type: text/html; charset=utf-8");
function multiple_replace_words($word,$replace,$string,$tmp_match= '#a_a #'){
preg_match_all('/'.$word.'/',$string,$matches); //すべてのキーワードに一致
$search =explode(',','/'.implode(') /, /',$matches[0]).'/');
//一致するキーワードがありません
if(empty($matches[0])) return false
//特別な置換設定
$count = count( $matches[0]);
foreach($replace as $key=>$val){
if(!isset($matches[0][$key])) unset($replace[$key]) ; / /範囲外の置換を削除します
}
//特殊な置換配列と一致する配列をマージします
for($i=0;$i<$count;$i++){
$matches[0][$ i] = isset($replace[ $i])? $replace[$i] : $matches[0][$i];
$replace = $matches[0];つまり、置換文字は置換された文字のままであり、この時点では一時的に特定の文字に置換されます $tmp_match
$replace = implode(',',$replace);
$replace = str_replace($word,$) tmp_match,$replace); //一致する文字を一時的に置換
$ replace =explode(',',$replace);
//置換処理
$string = preg_replace($search,$replace,$string,1); //一度に配列内の 1 つの要素のみを置換します
$string = str_replace ($tmp_match,$word,$string); //一時的に置換された一致する文字を復元します
return $string
//例 1
$ string = 'aaabaaacaaadaaa';
$word = 'aaa';
$replace = array(null,'xxx','yyy');
echo '元のテキスト:'.$string.'
:'.multiple_replace_words($word,$replace,$string).'< br/>
';
//例 2
$string = '中国語 aaab 中国語 ccaaad 中国語 eee'; word = '中国語';
$replace = array(null,'(中国語 2 を置換)','(中国語 3 を置換)');
echo '元のテキスト:'.$string.'
出力:'.multiple_replace_words($word,$replace,$string);
/*
出力結果:
原文: aaabaaacaaadaaa
出力: aaabxxxcyyydaaa
原文: 中国語 aaab 中国語 ccaaad 中国語 eee
出力: 中国語 aaab (中国語 2 を置き換える) ) ccaaad (中国語 3 を置き換える) ええ
//*/

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。