phpbar.de logo

Mailinglisten-Archive

[php] variable Variablennamen bei Arrays

[php] variable Variablennamen bei Arrays

Jens Giessmann jg at handcode.de
Don Nov 11 18:13:36 CET 2004


Hi,

kann mir mal bitte wer von dr Leitung helfen :-)

Folgendes Problem:  
wie kann ich bei mehrdimensionalen Arrays beliebiger Tiefe  
mit einem variablen Variablennamen auf einen Wert aus dem Array zugreifen. 
Ich weiss nur die Keys, die mich zum Wert "fuehren". 
 
Ich komm einfach nicht drauf. *GRMPFF* 
 
Hier ein Beispiel: 
 
<?php 
 
error_reporting(E_ALL); 
 
// Ein Beispiel-Daten-Array 
$data = array('hans' => array('gerd' => 'bla', 
                              'helga' => 'blubb'),  
              'peter' => array('fred' => 'blubber', 
                               'paul' => array ('peter' => 'huhu') 
                               ) 
              ); 
 
// irgendwoher bekomme ich Keys, die mir sagen, auf welches Element in 
// $data ich zugreifen muss. 
$keys = array('hans', 'helga'); 
 
// ich will also z.B. auf $data['hans']['helga'] zugreifen.  
// So klappt es natuerlich: 
print_r($data['hans']['helga']); 
 
// nur, dass der name eben dyn. aus dem Array $keys entstehen soll. 
 
// So geht es auch, aber da die Anzahl von keys nicht fest steht, ist 
// das ja auch keine Loesung: 
print_r($data[$keys[0]][$keys[1]]); 
 
// Wenn ich mir den name in einer Schleife zusammen baue: 
 
$name = 'data'; 
 
foreach ($keys as $key) { 
  $name .= "['" . $key . "']"; 
} 
 
// $name hat jetzt den Wert "data['hans']['helga']" 
 
// Dann ergibt der Versuch auf eine Varibale mit dem String $name als 
// "Name" zuzugreifen beides mal nur: 
 
// Notice: Undefined variable: data['hans']['helga'] in .... 
 
print_r( $$name ); 
print_r( ${$name} ); 

?> 



-- 

Gruss Jens

php::bar PHP Wiki   -   Listenarchive