0

我发现如何删除动态多维数组中的 html 标签:

function strip_tags_deep($value){
  return is_array($value) ? array_map('strip_tags_deep', $value) : strip_tags($value);
}

现在,我只想将 strip_tags 应用于这样的键值......

function strip_tags_deep($value){
  return is_array($value) ? array_map('strip_tags_deep', $value) : /* IF $KEY == "valuetest" THEN */ strip_tags($value);
}

我怎样才能做到这一点 ?

编辑:感谢囚犯 =)

我的新功能是:

function strip_tags_deep($value, $key = null){
  if(is_array($value)){
    return array_map('strip_tags_deep', $value, array_keys($value));
  }else{
    if($key === '#title'){
      return strip_tags($value));
    }
    return $value;
  }
}

但是她返回了一个数组但是...(<-见下面的edit2)但是如果我这样做..

function strip_tags_deep($value, $key = null){
  if(is_array($value)){
    return array_map('strip_tags_deep', $value);
  }else{
    //if($key === '#title'){
      return strip_tags(html_entity_decode($value));
    //}
    return $value;
  }
}

我的结果与我的第一次尝试相同。嗯,很奇怪,为什么第三个参数的 array_map 有问题?

edit2:一个示例数组

"arrayvalue1"
 "arrayvalue11"
  "a" => "avalue"
  "b" => "bvalue"
  "arrayvalue111"
    "c" => "cvalue" 

变成 "'strip_tags_deep', $value, array_keys($value)" :

0
 0
  0 => "avalue"
  1 => "bvalue"
 1
  0 => "cvalue"

我丢失了“数组名称”:/(原谅我糟糕的英语)

4

1 回答 1

1
function strip_tags_deep($value, $key = null){
  if(is_array($value)){
    return array_map('strip_tags_deep', $value, array_keys($value));
  }else{
    if($key === 'valuetest'){
      return strip_tags($value);
    }
    return $value;
  }
}

这将输出:

var_dump(strip_tags_deep(array('valuetest'=>'test<>'))); // array(1) { [0]=> string(4) "test" }
var_dump(strip_tags_deep(array('tests'=>'test<>'))); // array(1) { [0]=> string(6) "test<>" }
于 2013-04-04T14:10:26.570 回答