This article mainly introduced the PHP recursive call array value and the method of executing the specified function, involving the PHP array call and function execution skills, with a certain reference value, the need for friends can refer to the following
The example in this article describes the method by which PHP recursively invokes an array value and executes the specified function with it. The specific analysis is as follows:
The following is the original WordPress code, in order to lazy, simple modification to apply other functions
/*** navigates through an array and removes slashes from the values.** If A array is passed, the Array_map () function Cau Ses a callback to pass the* value back to the function. The slashes from this value would removed.** @since 2.0.0** @param mixed $value The value to be stripped.* @return mixed St Ripped 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;}
The code is as follows:
<?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 (), "\ 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 ($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) );//output result//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)?>
Summary : The above is the entire content of this article, I hope to be able to help you learn.
Related recommendations:
Methods of recursive traversal and renaming of files by PHP
PHP template and JS upload plug-in combination to implement a non-flush upload method
PHP Digital and digital Operation verification Code