>백엔드 개발 >PHP 튜토리얼 > 多维数组递归有关问题

多维数组递归有关问题

WBOY
WBOY원래의
2016-06-13 13:49:431264검색

多维数组递归问题

PHP code
<!--

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("//","",$v);
                if(is_array($v))
                {
                    htmla($string[$k]);
                }
            }
        }else{
            $string=preg_replace("//","",$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("//","",$v);
if(is_array($v))
{
htmla($string[$k]);
}
else
{
$string[$k]=preg_replace("//","",$v);
}
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.