多維陣列遞迴問題
PHP code
//為了實現內容中去除HTML A標籤function htmla(&$string) { if(is_array($string)) { foreach($string as $k=>$v) { $string[$k]=preg_replace("/<\/?a.*?>/","",$v); if(is_array($v)) { htmla($string[$k]); } } }else{ $string=preg_replace("/<\/?a.*?>/","",$string); } } $test=array(1,2,34,5,array("a"=>"而",1,23,array("df"=>"測試下"),array(23,32)),"b"=>"三"); htmla($test); var_dump($test);//結果array(6) { [0] => string(1) "1" [1] => string(1) "2" [2] => string(2) "34" [3] => string(1) "5" [4] => array(5) { ["a"] => string(3) "而" [0] => string(1) "1" [1] => string(2) "23" [2] => string(5) "Array" //超過2維就沒法轉換了。。 [3] => string(5) "Array" } ["b"] => string(3) "三"}
------解決方案--------------------
foreach($string as $k=>$v)
{
//$string[$k]=preg_replace("/<\/?a.*?>/","",$v);
if(is_array($v))
{
htmla($string[$k]);
}
else
{
$string[$k]=preg_replace("/<\/?a.*?>/","",$v);
}
}