我有下面的数组,我想把它保存到一个PHP文件中,比如myfile.php
,但我想在一个数组和另一个数组之间有合适的空格。我需要我的文件看起来像这个数组:
$array = [
"one" => [
"key1" => "value1",
"key2" => "value2",
"key3" => [
"key1" => "value3",
"key2" => "value4",
"key3" => [
"value5",
"value6",
"value7",
"value8",
"value9"
],
"key4" => "value10",
"key5" => "value11"
],
"key4" => "value12",
"key5" => "value13"
]
];
很难让完全像这样,但您可能正在寻找var_export。。
<?php
$arr=["one" => [
"key1" => "value1",
"key2" => "value2",
"key3" => [
"key1" => "value3",
"key2" => "value4",
"key3" => [
"key1" => "value5",
"key2" => "value6",
"key3" => "value7",
"key4" => "value8",
"key5" => "value9"
],
"key4" => "value10",
"key5" => "value11"
],
"key4" => "value12",
"key5" => "value13"
]];
file_put_contents('myfile.php', var_export($arr, true));
好的,我已经更新了!这是一个完美的方式。
function escapeString($str) {
$escape = array(
"'r" => ''r',
"'n" => ''n',
"'t" => ''t',
"'" => "'''",
'"' => ''"',
'''' => ''''''
);
return strtr($str, $escape);
}
function arrayToString($array, $space=2, $level=0) {
$var = "";
$SLINE = "'t";
$DLINE = "'n";
if (is_array($array)) {
$length = sizeof($array);
$last = 0;
foreach($array as $key => $x) {
$newKey = '"' . $key . '"';
if (is_array($x)) {
$level++;
$s = "";
$ss = "";
for ($j=0; $j < $level; $j++) {
if ($j>0)
$s.=$SLINE;
$ss.=$SLINE;
}
if ($length>1 && $last!=$length - 1)
$coma = ',' . $DLINE;
else
$coma = $DLINE;
$var.=$s . "$newKey => [".$DLINE;
$var.=arrayToString($x, $space, $level);
$var.=$s . "]$coma";
$level--;
}
else {
$s = "";
$ss = "";
for ($j=0; $j < $level; $j++) {
if ($j > 0)
$s.=$SLINE;
$ss.=$SLINE;
}
switch(gettype($x)) {
case 'boolean':
$value = $x ? 'true' : 'false';
break;
case 'integer':
case 'double':
$value = $x;
break;
case 'string':
$value = '"'.escapeString($x).'"';
break;
case 'NULL':
$value = 'null';
break;
}
if ($length>1 && $last!=$length - 1)
$coma = ',' . $DLINE;
else
$coma = $DLINE;
if (is_numeric($key))
$newKey = "";
else
$newKey.=" => ";
$var.=$ss . "$newKey$value$coma";
}
$last++;
}
return $var;
}
}
$array = [
"one" => [
"key1" => "value1",
"key2" => "value2",
"key3" => [
"key1" => "value3",
"key2" => "value4",
"key3" => [
"value5",
"value6",
"key1" => [
"key1" => "value3",
"key2" => "value4",
"key3" => [
"value5",
"value6",
"value7",
"value8",
"value9"
],
"key4" => "value10",
"key5" => "value11"
],
"value8",
"value9"
],
"key4" => "value10",
"key5" => "value11"
],
"key4" => "value12",
"key5" => "value13"
]
];
$DLINE = "'n";
$content = '<?php'.$DLINE.$DLINE;
$content .= arrayToString($array, $space=2);
$content .= $DLINE.'?>';
// refresh page and see your file
file_put_contents('yourFileName.php', $content);