PHP递归调用数组值并用其执行指定函数的方法


Posted in PHP onApril 01, 2015

本文实例讲述了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 相关文章推荐
PHP技术开发技巧分享
Mar 23 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
PHP合并两个数组的两种方式的异同
Sep 14 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
解析php常用image图像函数集
Jun 24 PHP
PHP json_decode函数详细解析
Feb 17 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
php 中奖概率算法实现代码
Jan 25 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
PHP微信H5支付开发实例
Jul 25 PHP
php微信公众平台开发类实例
Apr 01 #PHP
PHP生成指定随机字符串的简单实现方法
Apr 01 #PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 #PHP
php快速查找数据库中恶意代码的方法
Apr 01 #PHP
php将12小时制转换成24小时制的方法
Mar 31 #PHP
php给一组指定关键词添加span标签的方法
Mar 31 #PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 #PHP
You might like
虫族 Zerg 魔法科技
2020/03/14 星际争霸
在线竞拍系统的PHP实现框架(一)
2006/10/09 PHP
PHP安装攻略:常见问题解答(一)
2006/10/09 PHP
利用php获取服务器时间的实现代码
2013/06/07 PHP
PHP的switch判断语句的“高级”用法详解
2014/10/01 PHP
PHP写日志的实现方法
2014/11/05 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
javascript 写类方式之七
2009/07/05 Javascript
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
javascript数组的使用
2013/03/28 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
Python微信公众号开发平台
2018/01/25 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
python的依赖管理的实现
2019/05/14 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
美国瑜伽品牌:Gaiam
2017/10/31 全球购物
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
个人求职信范例
2014/01/29 职场文书
小学生开学第一课活动方案
2014/03/27 职场文书
三严三实对照检查材料
2014/08/25 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
2021/05/21 Python
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python