Key-Value Paare aus String ermitteln

Beispiel ausführen
<?php

$kv_list 
= <<<EOT

1 => Testumgebung, 2 => Liveumgebung, 3 => "auch mit , und =>", 4, 5

EOT;


function 
parse_key_value_list($kv_list)
{
    
$stack = array();
    
$reg_exp '#([^,"\'=>]+ | => | "[^"]*" | \'[^\']*\')#x';
    
$success preg_match_all($reg_exp$kv_list$match);

    
$t count($match[1]);
    
$n 0;

    
// ggf. Anführungen entfernen und trimmen
    
foreach ($match[1] as $m){
        
$m preg_replace('#("|\')(.*)(\1)#''\\2',$m);
        
$hits[] = trim($m);
    }

    for (
$c 0$c $t$c++){

        if (
$hits[$c+1] == '=>') {
            
$key2use $hits[$c];
            
$val2use $hits[$c+2];
            
$stack[$key2use] = $val2use;
            
$c+=2;
            
// bei numerischem Key weiterzählen
            
if (is_numeric($key2use)){
                
$n++;
            }
        }else{
            
$stack[$n] = $hits[$c];
            
$n++;
        }
    }
    return 
$stack;
}

print 
'<pre>';
print_rparse_key_value_list($kv_list));
print 
'</pre>';


?>

Benutzte Funktionen


Hinweise zum DatenschutzImpressum © 2005-2008 S. Eickhoff