Heim > php教程 > php手册 > PHP递归调用数组值并用其执行指定函数的方法

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

WBOY
Freigeben: 2016-06-13 09:08:05
Original
1338 Leute haben es durchsucht

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)

?>

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage