Andreas-Lindig: Baumstruktur & Array & Syntax

Beitrag lesen

Hallo Viennamade,

foreach (listTablesInDB() as $table){
  $i++;
  $trans[$i]=$table;
  unset ($x);
  foreach(listFieldsPerTable($table) as $field) {
    $trans[$i][$x]=$field;
    $x++;
    }
  }

bekommst Du denn eine Fehlermeldung?

1.
mich machen ja die Funktionen stuzig. Aber, wenn die Arrays zurückgeben mag das vielleicht gehen, obwohl - die Funktion wird ja in jedem Schleifenaufruf neu aufgerufen. Ich würde es jedenfalls nicht so machen.

2.
"$trans[$i]=$table;" Hier schreibst Du die erste Dimension deines Feldes schon voll - womit? Wenn das nicht wieder ein Array ist, kannst Du die Werte nicht mit "$trans[$i][$x]=$field;" überschreiben.

Ich vermute (auch nach den Antworten der anderen), Du willst sowas haben:

$Obst = array();
$Obst['Aepfel'][0] = 'Gravensteiner';
$Obst['Aepfel'][1] = 'Boskop';
$Obst['Bananen'][0] = 'Chiquita';
$Obst['Bananen'][1] = 'Dole';
$Obst['Bananen'][2] = 'REWE-Standard';
...

lies mal unter "assoziatives Array".

Lösung _etwa_ so:

$Arten = array('Aepfel','Bananen'...);
$Obst = array();

foreach ($listTablesInDB as $table)
{
   $i++;
   $Obst[$Arten[$i]]=array();

foreach($listFieldsPerTable as $field)
   {
      $Obst[$Arten[$i]][$x]=$field;
      $x++;
   }
}

Gruß, Andreas

--
<img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
http://was-ist-das.andreas-lindig.de