Hallo Pierre,
vielleicht schaust Du doch noch mal hier herein.
Im folgenden Array gibt es einen Eintrag "Gruppe". Diesen einen Begriff möchte ich als einziger in meiner Forech-Schleife nicht ausgeben.
ich reduziere daher Deinen Code auf Deine foreach-Schleife.
foreach ( $kategorie->fachkategorie as $value ) {
$fachartikel .= '['.l($value['safe'],'gruppe/fachartikel/'.$value['safe']).'] ';
}
innerhalb Deiner Schleife hast Du nur eine einzige Anweisung.
Auf Deine Frage
> Wie und wo muss ich das abfragen, damit "Gruppe" NICHT ins neue $value-Array geschrieben wird?
bekamst Du folgende Antworten:
[ChrisB](https://forum.selfhtml.org/?t=181831&m=1202861):
> > Wie - mit einer einfachen If-Abfrage
> > Wo - an der Stelle natuerlich, wo du den Wert uebernimmst.
[Sven](https://forum.selfhtml.org/?t=181831&m=1202857):
> > Offensichtlich willst du den String nur dann erweitern, WENN der Value NICHT "Gruppe" ist.
[Du fragest](https://forum.selfhtml.org/?t=181831&m=1202866) noch einmal:
> > Nun weiss ich nicht wo ich die if-Abfrage reinwursteln muss.
Das wie war also geklärt: mit einer if-Anweisung, die - siehe oben - innerhalb Deiner foreach-Schleife stehen muss.
[ChrisB](https://forum.selfhtml.org/?t=181831&m=1202868):
> > Also kommt die Abfrage darauf auch genau vor bzw. "um" diese Verarbeitung drumherum.
Ok, fassen wir zusammen:
1) Innerhalb der Schleife gibt es nur eine einzige Anweisung.
2) Diese erledigt die Verarbeitung.
3) Die Verarbeitung, das heißt diese eine Anweisung ist in die
if-Anweisung zu packen.
Wir nehmen Deinen Code und bauen die if-Anweisung an der genannten Stelle ein:
~~~php
foreach ( $kategorie->fachkategorie as $value ) {
# Diese Anweisung ist in eine if-Anweisung zu packen.
$fachartikel .= '['.l($value['safe'],'gruppe/fachartikel/'.$value['safe']).'] ';
}
führt zu
foreach ( $kategorie->fachkategorie as $value ) {
# Diese Anweisung ist in eine if-Anweisung zu packen.
if ( Bedingung für Verarbeitung erfüllt ) {
# Erweitere Zeichenkette
$fachartikel .= '['.l($value['safe'],'gruppe/fachartikel/'.$value['safe']).'] ';
}
}
Ergänzen wir die Bedingung für die if-Anweisung:
- Die Bedingung der if-Anweisung heißt:
"WENN der Value NICHT "Gruppe" ist.
foreach ( $kategorie->fachkategorie as $value ) {
# Diese Anweisung ist in eine if-Anweisung zu packen.
# Die Bedingung lautet: Value ist NICHT "Gruppe"
# $value scheint ein assoziatives Array zu sein.
# Wähle den passenden, nur Dir bekannten key aus.
if ( $value['spezieller Key'] != 'Gruppe' ) {
# Erweitere Zeichenkette
$fachartikel .= '['.l($value['safe'],'gruppe/fachartikel/'.$value['safe']).'] ';
}
}
Eine andere Möglichkeit bleibt Dir bei dieser Logik doch gar nicht.
Entweder (if) (Value nicht gleich 'Gruppe')
Du hängst an (bisherige Anweisung)
Oder (else)
Du läßt es bleiben (tust nichts)
Somit entfällt der else-Zweig Deiner if-Anweisung.
Du könntest es auch umformulieren; das ist allerdings ungeschickt:
Entweder (if)
Du tust nichts (Value ist gleich 'Gruppe')
Oder (else)
Du hängst an (bisherige Anweisung)
Da der if-Zweig zwingend erforderlich ist, hättest Du damit mehr Aufwand.
Man verneint in solchen Fällen die Bedingung, um mit dem if-Zweig auszukommen, was zu einfacherem Code führt.
Die Informationen waren alle da; Du hast sie von Sven und Chris bekommen. Schade, dass die Emotionen sich hochgeschaukelt haben, statt zur naheliegenden Lösung zu kommen. Da es wirklich nicht viele Möglichkeiten gab, Deinen Code um eine if-Anweisung zu erweitern, kann ich die Nachfrage, was Du versucht hast und woran Du gescheitert bist, verstehen.
Freundliche Grüße
Vinzenz