這篇文章主要介紹了php使用str_replace替換多維數組的實現方法,結合具體實例對比分析了php針對多維數組的遍歷與替換操作相關實現技巧與注意事項,需要的朋友可以參考下
在php中,如果使用str_replace替換數組中的字串,只能替換一維的數組,如果是多維數組的話,不能實現全部字串的替換。於是就寫了一個方法實現多維數組字串的替換,
首先來測試直接使用str_replace來測試數組的替換
$a = array( 'a' => 'bdc#', 'ceshi' => array('c'=>array('f'=>'#')) ); $a = str_replace('#', 'ccc', $a); var_dump($a);
#發現輸出如下:
array (size=2) 'a' => string 'bdcccc' (length=6) 'ceshi' => array (size=1) 'c' => array (size=1) 'f' => string '#' (length=1)
發現只取代了一維陣列中的字串,更多維的陣列並沒有被替換掉。
函數實作多維數組的字串替換
$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)發現實作了多維數組的字串替換函數strReplace傳入數組的位址,透過遞歸的方式來實現替換字串。當然這只是一個很簡單的方法,實現的方法很多,喜歡就好! 相關推薦:
javascript replace()第二個參數為函數時的參數用法(詳細為大家解讀)
str_replace函數定義與用法匯總
pushState與replaceState使用步驟詳解
php讀取文字檔案的常用4種方式以及str_replace裡不常用的參數意義
以上是php使用str_replace取代多維數組的實作方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!