>  기사  >  백엔드 개발  >  PHP递归调用数组值并用其执行指定函数的方法_PHP教程

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

WBOY
WBOY원래의
2016-07-13 09:58:30796검색

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

 以下为wordpress原代码,为了偷懒,简单修改一下以适用其它函数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

/**

* 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;

}

代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

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

$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)

?>

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/977617.htmlTechArticlePHP递归调用数组值并用其执行指定函数的方法 以下为wordpress原代码,为了偷懒,简单修改一下以适用其它函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.