PHP 数组转字符串后仍保留数组格式
写此方法的目的是,我想把一个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,"\t");
foreach($arr as $k=>$v){
if(is_array($v)){
if(is_string($k)){
$str.= $pad."'".$k."'=>array(\n".arr2str($v,$t+1).$pad."),\n";
}else{
$str.= $pad ."array(\n".arr2str($v,$t+1).$pad."),\n";
}
}else{
if(is_string($k)){
$str.= $pad."'".$k."'=>'".$v."',\n";
}else{
$str.= $pad."'".$v."',\n";
}
}
}
return $str;
}
//应用
echo "Array(\n";
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 直接可写入。
浙公网安备 33010602011771号