PHP递归调用数组值并用其执行指定函数的方法
本文实例讲述了PHP递归调用数组值并用其执行指定函数的方法。分享给大家供大家参考。具体分析如下:
以下为wordpress原代码,为了偷懒,简单修改一下以适用其它函数
/**
*Navigatesthroughanarrayandremovesslashesfromthevalues.
*
*Ifanarrayispassed,thearray_map()functioncausesacallbacktopassthe
*valuebacktothefunction.Theslashesfromthisvaluewillremoved.
*
*@since2.0.0
*
*@parammixed$valueThevaluetobestripped.
*@returnmixedStrippedvalue.
*/
functionstripslashes_deep($value){
if(is_array($value)){
$value=array_map('stripslashes_deep',$value);
}elseif(is_object($value)){
$vars=get_object_vars($value);
foreach($varsas$key=>$data){
$value->{$key}=stripslashes_deep($data);
}
}elseif(is_string($value)){
$value=stripslashes($value);
}
return$value;
}
代码如下:
<?php
functionfunction_deep($function,$value){
try{
if(!function_exists($function)){
$error='"'.$function.'"isundefined';
thrownewException($error);
}
}catch(Exception$e){
echo'Caughtexception:',$e->getMessage(),"\n";
die();
}
if(is_array($value)){
$fun=Array();
for($i=1;$i<=count($value);$i++){
$fun[]=$function;
}
$value=array_map("function_deep",$fun,$value);
}elseif(is_object($value)){
$vars=get_object_vars($value);
foreach($varsas$key=>$data){
$value->{$key}=function_deep($function,$data);
}
}elseif(is_string($value)){
$value=call_user_func($function,$value);
}
return$value;
}
$arr=array(
"I'mbean",
"I'mbean",
array("I'mbean","I'mbean")
);
var_dump(function_deep("addslashes",$arr));
//输出结果
//array(size=3)
//0=>string'I\'mbean'(length=9)
//1=>string'I\'mbean'(length=9)
//2=>
//array(size=2)
//0=>string'I\'mbean'(length=9)
//1=>string'I\'mbean'(length=9)
?>
希望本文所述对大家的php程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短