Sven Rautenberg: Und schon sind sie da, die ersten Problemchen... :-)

Beitrag lesen

Moin!

switch($count)
{
  case 2:

Und hier verzweigst du wieder je nach Anzahl der gefundenen Bestandteile, wie schon zuvor oben.

Das könnte man insgesamt auch stark vereinfachen, indem man wirklich nur einmal verzweigt, und jeweils alle notwendigen Aktivitäten zur Ausgabe einer Brotkrumennavigation für die jeweilige Stufe ausgibt.

Das verstehe ich nicht. Was meinst du damit?

Du hast zweimal Switch und dazwischen etwas IF.

switch ($count)
...
if ($count)
if ($count)
switch ($count)

An allen Stellen trennst du nach immer denselben drei Fällen (Werte 2, 3 oder 4 für $count). Da "dazwischen" nichts passiert, was in allen drei Fällen gemeinsam passiert, kannst du deine Trennung auch in genau einem Switch unterbringen.

Ich habe die if-Abfrage folgendermaßen abgeändert, und so funktioniert es:

if ($i < count($pfad)-1)

In dieser Konfiguration wird beim letzten Teil auf else verzweigt.

Der typische "off by one"-Fehler. War ja klar, ich baue gerne Fehler ein, die absolut unscheinbar sind. Aber du warst gewarnt. :)

Schau dir im Zweifel einfach mal die Beispiele bei php.net an, um zu verstehen, was da bei array_slice passiert. http://de2.php.net/manual/de/function.array-slice.php

Die Beispiele dort sind mir leider in der Regel zu theoretisch, die kann ich meist nicht umsetzen. Deshalb probiere ich auch immer rum. ;-)

Die Beispiele dort sind genau dafür da, das Funktionieren zu erklären, mehr nicht. Weil die Erklärung dann doch immer etwas theoretisch ist (negative Werte, was ist mit Null, etc.), kann ich bei den Beispielen schnell sehen, wie das gemeint ist (vorausgesetzt, die Beispiele sind nicht falsch).

- Sven Rautenberg

--
Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!