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

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

WBOY
Freigeben: 2016-06-06 19:35:33
Original
914 Leute haben es durchsucht

//以下为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 functi

//以下为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 WordPress
<?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) 

?>
Nach dem Login kopieren
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