ホームページ  >  記事  >  バックエンド開発  >  PHP配列1対1置換実装コード_PHPチュートリアル

PHP配列1対1置換実装コード_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:16:211049ブラウズ

コードをコピーします コードは次のとおりです:

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++){
$マッチ[0][$i] = isset($replace[$i]) : $マッチ[0][$i]
}
$replace = $マッチ
/ /置換ループの防止、つまり置換 この時点では、文字は置換された文字のままです $tmp_match
$replace = implode(',',$replace);
$replace = str_replace ($word,$tmp_match,$replace); // 一致した文字を一時的に置換
$replace =explode(',',$replace);
//置換処理
$string = preg_replace($search,$replace,$string) ,1); // 配列内の文字のみを置換します A
$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).'

';
//例 2
$string = '中国語 aaab 中国語 ccaaad 中国語 eee ';
$word = '中国語';
$replace = array( null,'(中国語 2 を置換)','(中国語 3 を置換)');
echo '元のテキスト:'.$string.'
Output:'.multiple_replace_words($word,$replace,$string );/* 出 出力結果:

: AAABAAAAAAADAAAAAAAAAAAAAAAA OHAABXXXCYYDAAAA
オリジナル: 中国語 AAB 中国語 CCAAAD 中国語 EEE
出力: 中国語 AAB (中国語 2 を置換) CAAAD (中国語 3 に置き換えられました) EEE
//*/




)
著者: Zjmainstay

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/325899.html技術記事次のようにコードをコピーします: ?php header("Content-type: text/html; charset=utf-8"); function multiple_replace_words($word,$replace,$string,$tmp_match='#a_a#'){ preg_match_all ( '/'.$wo...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。