PHP递归调用数组值并用其执行指定函数的方法
作者:代码成湿 时间:2023-09-05 15:35:04
本文实例讲述了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(), "\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));
// 输出结果
// 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程序设计有所帮助。
标签:PHP,数组,函数
0
投稿
猜你喜欢
nacos只支持mysql的原因分析
2024-01-17 21:11:23
matplotlib 对坐标的控制,加图例注释的操作
2021-06-12 16:28:46
详解用Python实现自动化监控远程服务器
2021-02-14 15:50:57
Python学习小技巧之利用字典的默认行为
2021-10-10 23:48:29
一些实用性较高的js方法
2024-04-29 13:37:40
如何取得MYSQL中ENUM列的全部可能值
2009-07-30 08:53:00
使用XML配置c3p0数据库连接池
2024-01-22 11:15:02
css网页下拉菜单制作方法(2):初步实现
2007-02-03 11:39:00
PHP获取一个字符串中间一部分字符的方法
2024-03-08 20:17:39
jQuery 选择器的使用
2008-01-21 13:07:00
uni-app的基本使用教程
2024-05-11 09:15:18
python logging设置level失败的解决方法
2022-03-23 13:54:40
Python的Django框架中自定义模版标签的示例
2022-10-31 22:28:56
MySQL UPDATE 语句的非标准实现代码
2024-01-16 19:08:57
用ASP实现在线压缩与解压缩
2007-09-29 12:13:00
JS在IE和FireFox之间常用函数的区别小结
2024-04-16 09:54:54
Python数学建模StatsModels统计回归可视化示例详解
2023-10-09 02:16:54
Python统计列表元素出现次数的方法示例
2021-03-06 00:43:23
vue项目中api接口管理总结
2024-04-30 10:42:44
CSS 3入门
2009-04-19 13:00:00