2013-04-04 58 views
0

我發現如何刪除動態多維數組的HTML標籤與此:用strip_tags在多維數組

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); 
} 

我該怎麼做?

編輯:THX囚犯=)

我的新功能是:

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',$值,array_keys($值)」:

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

我失去了 「陣列名稱」:/(原諒我的英語很差)

+2

檢索密鑰,你需要foreach數組 – 2013-04-04 14:04:19

回答

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<>" } 
+0

Thx =)但不工作...我編輯我的第一篇文章 – user2137454 2013-04-04 14:35:44

+0

什麼不行?我將test更改爲valuetest,並從數組中剝離標籤? – Prisoner 2013-04-04 14:39:58

+0

我將再次編輯! – user2137454 2013-04-04 14:49:33