关于preg_replace()函数反向引用用法的有关问题

WBOY
Lepaskan: 2016-06-13 12:26:30
asal
1258 orang telah melayarinya

关于preg_replace()函数反向引用用法的问题。

<br />$Array1=array(<br />	array('ID'=>'1','Name'=>'小王'),<br />	array('ID'=>'2','Name'=>'小李')<br />	);<br /><br />$strA='AA Name CC DD';<br />$strB='/\s+(\w+)\s+/i';<br />$Html=preg_replace($strB, $Array1[0][‘${2}’], $strA);<br />echo $Html;<br />
Salin selepas log masuk


如上面所示返向引用${2}如下这么写是没问题的:
$Html=preg_replace($strB, ‘${2}’, $strA);
Salin selepas log masuk


但是,如果我想把这个引用过来的字符串当作数组的键名,如$array['${1}']!。就会报错。如何解决这个问题呢?
Notice: Undefined index: in F:\Web\wwwroot\CMS\TemplateClass.php on line 236
------解决思路----------------------
对于 php5.5 一下,可以
$Array1 = array(<br />    array('ID'=>'1','Name'=>'小王'),<br />    array('ID'=>'2','Name'=>'小李')<br />    );<br /> <br />$strA = 'AA Name CC DD';<br />$strB = '/\s+(\w+)\s+/ie';<br />$Html = preg_replace($strB, '$Array1[0]["$1"]', $strA);<br />echo $Html;<br />
Salin selepas log masuk

对于 php5.3及以上,可以
$Array1 = array(<br />    array('ID'=>'1','Name'=>'小王'),<br />    array('ID'=>'2','Name'=>'小李')<br />    );<br /> <br />$strA = 'AA Name CC DD';<br />$strB = '/\s+(\w+)\s+/i';<br />$Html = preg_replace_callback($strB, function($m) use ($Array1) { return $Array1[0][$m[1]];}, $strA);<br />echo $Html;
Salin selepas log masuk

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!