我有一个带有巨大数组的文件,它有多个深度,看起来有点像这样。
$array = array(
'all_tools' => array(
'title' => 'Tools',
'help' => 'Help with tools'
),
'addcode' => array(
'title' => 'Add Code',
'help' => 'Add code help'
),
'editcode' => array(
'title' => 'Edit Code',
'help' => 'Edit code help'
)
);
显然这是不够可读的,我被要求将此数组转换为以下格式。
$array['all_tools']['title'] = 'Tools';
$array['all_tools']['help'] = 'Help with tools';
$array['addcode']['title'] = 'Add Code';
$array['addcode']['help'] = 'Add code help';
$array['editcode']['title'] = 'Edit Code';
$array['editcode']['help'] = 'Edit code help';
它是相同的数组,但我需要像这样构造它。这需要花费数小时手工完成,因为这个文件非常庞大。有没有人知道PHP函数会以这种方式打印多维数组的内容吗?
编辑: 我想了解更多信息。我正在处理的数组在每个键中可以嵌套多少个数组有一些变化。我需要一个可以根据需要进行多层深度解决的解决方案,并且当它碰到字符串而不是数组时动态地知道何时停止。
答案 0 :(得分:3)
这将吐出一个文本文件,您可以将其复制并粘贴到您的代码中:
foreach($array as $first_level_key => $value){
foreach($value as $sub_key => $sub_value){
echo "\$array['".$first_level_key."']['".$sub_key."'] = '$sub_value'; \n";
}
}
答案 1 :(得分:3)
<?php
function recursive_print ($varname, $varval) {
if (! is_array($varval)):
print $varname . ' = ' . var_export($varval, true) . ";<br>\n";
else:
print $varname . " = array();<br>\n";
foreach ($varval as $key => $val):
recursive_print ($varname . "[" . var_export($key, true) . "]", $val);
endforeach;
endif;
}
?>
如果输出是文本文件而不是HTML页面,请删除 &LT峰; br&GT; S
答案 2 :(得分:0)
有多种方法可以将PHP变量输出为直接可使用的代码。
var_export
就像var_dump
/ print_r
一样,您可以使用var_export
将数组输出为可消费(可解析)的PHP代码。
json_encode
您可以将数组输出为JSON
编码格式,该格式不仅可以使用PHP
语言,还可以使用大部分其他语言JSON
1}}是一种与语言无关的格式。
serialize
+ unserialize
使用您自己的函数/方法生成输出php
字符串。