函数中如果定义了静态变量,每次对函数的调用返回的数据都会保存,不会清空,所以使用下面的方法可以使函数每次调用前的数据都是空的状态。
/** * 函数中清空静态变量 * $i 第一次为空,会清空静态变量,下次调用时已经++ ,故不会在清空 */ function array_multi2single($array, $i = 0) { static $result_array=array(); if(empty($i)) { $result_array = array(); } foreach($array as $key=>$value) { if(is_array($value)) { $i ++; array_multi2single($value, $i); } else $result_array[$key]=$value; } return $result_array; } $a = array('a'=>array('b'=>'b')); print_r(array_multi2single($a)); $b = array('a'=>array('bb'=>'bb')); print_r(array_multi2single($b));
本文转自:http://www.cnblogs.com/siqi/archive/2013/05/30/3107334.html