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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
PHP 类型转换函数intval
Jun 20 PHP
浅析php中jsonp的跨域实例
Jun 21 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
php中让人头疼的浮点数运算分析
Oct 10 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
stripos函数知识点实例分享
Feb 11 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
PDO实现学生管理系统
Mar 21 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
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
2018/06/22 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
简单了解python中对象的取反运算符
2019/07/01 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python3 实现的对象与json相互转换操作示例
2019/08/17 Python
django 模型中的计算字段实例
2020/05/19 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
艺术应用与设计个人的自我评价
2013/11/23 职场文书
银行实习的自我鉴定
2013/12/10 职场文书
家长给老师的道歉信
2014/01/13 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
大学生求职计划书
2014/04/30 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
Python Socket编程详解
2021/04/25 Python
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
浅谈MySQL函数
2021/10/05 MySQL
Python机器学习应用之基于线性判别模型的分类篇详解
2022/01/18 Python
移除Selenium中window.navigator.webdriver值
2022/06/10 Python