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,"	");
	
	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 直接可写入。

原文地址:https://www.cnblogs.com/ser0632/p/4775378.html