Welcome 微信登录

首页 / 网页编程 / PHP / PHP递归调用数组值并用其执行指定函数的方法

本文实例讲述了PHP递归调用数组值并用其执行指定函数的方法。分享给大家供大家参考。具体分析如下:
以下为wordpress原代码,为了偷懒,简单修改一下以适用其它函数

/*** Navigates through an array and removes slashes from the values.** If an array is passed, the array_map() function causes a callback to pass the* value back to the function. The slashes from this value will removed.** @since 2.0.0** @param mixed $value The value to be stripped.* @return mixed Stripped value.*/function stripslashes_deep($value) { if ( is_array($value) ) {$value = array_map("stripslashes_deep", $value); } elseif ( is_object($value) ) {$vars = get_object_vars( $value );foreach ($vars as $key=>$data) { $value->{$key} = stripslashes_deep( $data );} } elseif ( is_string( $value ) ) {$value = stripslashes($value); } return $value;}
代码如下:
<?php function function_deep($function,$value) {try {if(!function_exists($function)){$error = """.$function."" is undefined";throw new Exception($error);}} catch (Exception $e) {echo "Caught exception: ", $e->getMessage(), "
";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 ($vars as $key=>$data) {$value->{$key} = function_deep($function,$data );}} elseif ( is_string( $value ) ) {$value = call_user_func($function,$value);}return $value;}$arr = array("I"m bean","I"m bean",array("I"m bean","I"m bean"));var_dump(function_deep("addslashes",$arr));// 输出结果// array (size=3)//0 => string "I"m bean" (length=9)//1 => string "I"m bean" (length=9)//2 => // array (size=2)//0 => string "I"m bean" (length=9)//1 => string "I"m bean" (length=9) ?>
希望本文所述对大家的php程序设计有所帮助。