ホームページ >バックエンド開発 >PHPチュートリアル >多次元配列の再帰に関する問題

多次元配列の再帰に関する問題

WBOY
WBOYオリジナル
2016-06-13 13:49:431244ブラウズ

多次元配列の再帰問題

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
//为了实现内容中去除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"=>"<a href=''>而</a>",1,23,array("df"=>"<a href=''>测试下</a>"),array(23,32)),"b"=>"<a href=''>三</a>");
        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))
{
hta($string[$k]);
}
else
{
$string[$ k]=preg_replace("/?a.*?>/","",$v);
}
}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。