php使用str_replace替換多維數(shù)組的實現(xiàn)方法分析
本文實例講述了php使用str_replace替換多維數(shù)組的實現(xiàn)方法。分享給大家供大家參考,具體如下:
在php中,如果使用str_replace替換數(shù)組中的字符串,只能替換一維的數(shù)組,如果是多維數(shù)組的話,不能實現(xiàn)全部字符串的替換。于是就寫了一個方法實現(xiàn)多維數(shù)組字符串的替換,
首先來測試一下直接使用str_replace來測試數(shù)組的替換
$a = array(
'a' => 'bdc#',
'ceshi' => array('c'=>array('f'=>'#'))
);
$a = str_replace('#', 'ccc', $a);
var_dump($a);
發(fā)現(xiàn)輸出如下:
array (size=2)
'a' => string 'bdcccc' (length=6)
'ceshi' =>
array (size=1)
'c' =>
array (size=1)
'f' => string '#' (length=1)
發(fā)現(xiàn)只替換了一維數(shù)組中的字符串,更多維的數(shù)組并沒有并替換掉。
函數(shù)實現(xiàn)多維數(shù)組的字符串替換
$a = array(
'a' => 'bdc#',
'ceshi' => array('c'=>array('f'=>'#'))
);
function strReplace(&$array) {
$array = str_replace('#', 'ccc', $array);
if (is_array($array)) {
foreach ($array as $key => $val) {
if (is_array($val)) {
strReplace($array[$key]);
}
}
}
}
strReplace($a);
var_dump($a);
輸出如下:
array (size=2)
'a' => string 'bdcccc' (length=6)
'ceshi' =>
array (size=1)
'c' =>
array (size=1)
'f' => string 'ccc' (length=3)
發(fā)現(xiàn)實現(xiàn)了多維數(shù)組的字符串替換
函數(shù)strReplace傳入數(shù)組的地址,通過遞歸的方式來實現(xiàn)替換字符串。當然這只是一個很簡單的方法,實現(xiàn)的方法很多,喜歡就好!
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php字符串(string)用法總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
PHP編碼轉(zhuǎn)換函數(shù) 自動轉(zhuǎn)換字符集支持數(shù)組轉(zhuǎn)換
當我們在接受未知客戶端提交的數(shù)據(jù),由于各客戶端的編碼不統(tǒng)一,但在我們的服務(wù)器端最終只能以一種編碼方式來處理,這種情況下就會涉及到編碼轉(zhuǎn)換問題2012-12-12
php數(shù)組函數(shù)序列之sort() 對數(shù)組的元素值進行升序排序
sort() 函數(shù)按升序?qū)o定數(shù)組的值排序。注釋:本函數(shù)為數(shù)組中的單元賦予新的鍵名。原有的鍵名將被刪除2011-11-11
php數(shù)組函數(shù)序列之rsort() - 對數(shù)組的元素值進行降序排序
rsort() 函數(shù)對數(shù)組的元素按照鍵值進行逆向排序。與 arsort() 的功能基本相同。注釋:該函數(shù)為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。2011-11-11
PHP Squid中可緩存的動態(tài)網(wǎng)頁設(shè)計
有時我們需要控制主頁之類的網(wǎng)頁過期時間.但我們比如使用的是Chinacache的CDN,那要怎么樣設(shè)計才能讓他緩存我的內(nèi)容.2008-09-09

