nix: Array

Beitrag lesen

Hi,

function test ($navigation = array(), $menumode) {

Erster Fehler. Variablen, die mit einem Standardwert belegt werden können, müssen nach hinten in die Argumentliste, also
function test ($menumode, $navigation = array())

$temp = $menumode;
for ($i=0; $i<sizeof($navigation); $i++) {
 $temp = $temp.$i["name"]."<br>";
}

Zweiter Fehler. $i ist ein Integer, die Laufvariable für die Schleife, KEIN Array, auf das man so zugreifen könnte (mit []).
Richtig wäre:
$temp = $temp.$navigation[$i]."<br>";

Aber das funktioniert auch NUR dann, wenn das Array kein assoziatives Array ist, sondern ein durchnummeriertes (in diesem Fall ist es eines, weil mysql_fetch_array ein solches liefert).
Besser wäre:
reset($navigation);
while (list(, $value) = each($navigation))
  $temp .= $value."<br>";

So kann man die Funktion auch mit assoziatives Arrays aufrufen und es funktioniert.

Ist das so grundsätzlich falsch, oder geht sowas überhaupt??

Nicht grundsätzlich, aber doch recht unrichtig :-)

nix