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>
    }
?>

 

posted @ 2010-05-19 11:24  李锋  Views(418)  Comments(0)    收藏  举报