/**
* 数组转换成字串
* @param array $array 要转换的数组
* @param int $level 数组的层次
* @return string 返回转换后的字符串
*/
function arrayeval($array, $level = 0) {
$space = '';
for($i = 0; $i <= $level; $i++) {
$space .= "\t";
}
$evaluate = "Array\n$space(\n";
$comma = $space;
foreach($array as $key => $val) {
//addcslashes($key, '\'\\');只对'与\进行转义
$key = is_string($key) ? '\''.addcslashes($key, '\'\\').'\'' : $key;
//如果$key不是数字,则设置为字符串,如果是数字,则直接取数字
$val = !is_array($val)&&(!preg_match("/^\-?\d+$/", $val) || strlen($val) > 12 || substr($val, 0, 1)=='0') ? '\''.addcslashes($val, '\'\\').'\'' : $val;
//如果$val不是数字,则设置为字符串,如果是数字,则直接取数字
if(is_array($val)) {
//如果是数组,则再一次进行转换
$evaluate .= "$comma$key => ".arrayeval($val, $level + 1);
} else {
$evaluate .= "$comma$key => $val";
}
$comma = ",\n$space";
}
$evaluate .= "\n$space)";
return $evaluate;
}
|