<?php 
function cacheArr(&$data){ 
if(!$data)throw new Exception('数组不能为空'); 
foreach($GLOBALS as $key=>$value){ 
$str=$GLOBALS[$key]; 
$GLOBALS[$key]='changed'; 
if(&$data=='changed'){ 
$strName=$key; 
break; 
} 
$GLOBALS[$key]=$str; 
} 
ob_clean(); 
ob_start(); 
echo "<?phpn"; 
function echoArr($arr,$arrName){ 
$arrCount=count($arr);$i==0; 
foreach($arr as $key=>$value){ 
++$i; 
if(is_array($value)){ 
echo "n".(is_numeric($key)?$key:'''.$key.''').'=>array('; 
echoArr($value,$arrName.(is_numeric($key)?'['.$key.']':'[''.$key.'']')); 
if($i!=$arrCount)echo '),'; 
else echo ')'; 
continue; 
} 
if($i!=$arrCount)echo ((is_numeric($key))?$key:'''.$key.''').'=>'.(is_numeric($value)?$value:'''.$value.''').','; 
else echo ((is_numeric($key))?$key:'''.$key.''').'=>'.(is_numeric($value)?$value:'''.$value.'''); 
} 
} 
echo '$'.$strName.'=array('; 
echoArr($data,''); 
echo ');'; 
echo "n?>"; 
$file=fopen($strName.'.arr.php','w'); 
fwrite($file,ob_get_contents()); 
fclose($file); 
ob_clean(); 
return true; 
} 
?> 

测试

<?php 
//存储数组 
$hello=array(1=>'test',2=>array('http://www.hzhuti.com')); 
cacheArr($hello); 
unset($hello); 
//读取数组 
require 'hello.arr.php'; 
print_r($hello); 
?>