写此方法的目的是,我想把一个PHP数组配置文件读进程序,添加些配置,然后在写入文件;
var_export 方法会把原来的配置打乱(比如数组序号我没有加,他自动给我加上 0,1,2,3...),而且格式不好看(缩进非常难看)。
方法及应用
<?php $arr=array( 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'rd6688', 'ipFilters'=>array( '127.0.0.1', '::1' ), 'generatorPaths' => array ( 'ext.bootstrap-theme.gii', ), ), ); function arr2str($arr,$t=0){ $str = null; $pad = str_pad("",$t," "); foreach($arr as $k=>$v){ if(is_array($v)){ if(is_string($k)){ $str.= $pad."'".$k."'=>array( ".arr2str($v,$t+1).$pad."), "; }else{ $str.= $pad ."array( ".arr2str($v,$t+1).$pad."), "; } }else{ if(is_string($k)){ $str.= $pad."'".$k."'=>'".$v."', "; }else{ $str.= $pad."'".$v."', "; } } } return $str; } //应用 echo "Array( "; echo arr2str($arr,$t=1); echo ")"; ?>
执行结果
Array( 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'rd6688', 'ipFilters'=>array( '127.0.0.1', '::1', ), 'generatorPaths'=>array( 'ext.bootstrap-theme.gii', ), ), )
如果写入文件,不用 echo 直接可写入。