Stefan Welscher: Assoziative Arrays dynamisch bilden?

Beitrag lesen

Moin moin,
ich hab ein PHP-Script welches über die Konsole gestartet wird und als Übergabeparameter die Variablen bekommt, wie sie normalerweise in der URL-Vorkommen (ganz ursprünglich kommen die Variablen auch da her, da das PHP-Script von einem Perl-Script gestartet wird, welches von einem PHP-Script eines Webservers gestartet wird (is kompliziert, aber unwichtig)).
Das PHP-Script hat die Aufgabe die über die Konsole übergebenen Variablen dem anschließend aufgerufenen weiteren PHP-Script zur Verfügung zu stellen.

Das ganze sieht so aus:

  
<?  
$coca_file=$argv[1];  
  
$arg_array=split("[?&]",$coca_file);  
$file_arg=1;  
foreach ($arg_array as $arg)  
{  
 if ($file_arg) { $file_arg=0; $coca_file=$arg; continue; }  
 $arg_subarray=split("=",$arg);  
 if (preg_match("/^(.*?)\[(.*?)\]/",$arg_subarray[0],$result_array))  
 {  
  $var=$result_array[1];  
  $key=$result_array[2];  
  $value=$arg_subarray[1];  
  if (!is_array($$var)) { $$var=Array(); }  
  $$var[$key]=$value;  
  print "\n<br>\nDEBUG:".$var."[".$key."]=".$value.";\n<br>";  
 }  
 else  
 {  
  $var=$arg_subarray[0];  
  $value=$arg_subarray[1];  
  $$var=$value;  
 }  
}  
print_r(get_defined_vars());  
  
include ($coca_file);  
?>

Die Übernahme der Variablen klappt soweit problemlos, aber wenn Arrays ins Spiel kommen macht das Skript Blödsinn. Die Zuweisung von $var, $key und $value passt aber.
Die Frage ist also: Wie mache ich aus den drei Variablen $var, $key und $value ein Array-Element $$var[$key]=$var (ohne evtl. bestehende Elemente des Arrays zu eliminieren).