php array 转代码格式的字符串
<?php
class ArrayUtil
{
public static function array_to_string(array $source_array)
{
$r = '';
self::a2s($r,$source_array);
return $r;
}
//<editor-fold defaultstate="collapsed" desc="private method only for array_to_string">
private static function a2s(&$r,array &$a)
{
$f = false;
$i=0;
$r.= 'array(';
foreach ($a as $k=>$v)
{
if($f)
$r.=',';
$j = is_numeric($k);
self::o2s($r,$k,$v,$i,$j);
$f=true;
if($j && $k>=$i)
$i=$k+1;
}
$r.=')';
}
private static function o2s(&$r,$k,$v,$i,$j)
{
if($k!==$i)
{
if($j)
$r.="$k=>";
else
$r.="'$k'=>";
}
if(is_array($v))
self::a2s($r,$v);
else if(is_numeric($v))
$r.=$v;
else
$r.="'".str_replace(array("\\","'"),array("\\\\","\'"),$v)."'";
}
//</editor-fold>
}
?>
class ArrayUtil
{
public static function array_to_string(array $source_array)
{
$r = '';
self::a2s($r,$source_array);
return $r;
}
//<editor-fold defaultstate="collapsed" desc="private method only for array_to_string">
private static function a2s(&$r,array &$a)
{
$f = false;
$i=0;
$r.= 'array(';
foreach ($a as $k=>$v)
{
if($f)
$r.=',';
$j = is_numeric($k);
self::o2s($r,$k,$v,$i,$j);
$f=true;
if($j && $k>=$i)
$i=$k+1;
}
$r.=')';
}
private static function o2s(&$r,$k,$v,$i,$j)
{
if($k!==$i)
{
if($j)
$r.="$k=>";
else
$r.="'$k'=>";
}
if(is_array($v))
self::a2s($r,$v);
else if(is_numeric($v))
$r.=$v;
else
$r.="'".str_replace(array("\\","'"),array("\\\\","\'"),$v)."'";
}
//</editor-fold>
}
?>

浙公网安备 33010602011771号