Einen Eintrag in der foreach-Schleife ausschliessen
Pierre
- php
0 Sven Rautenberg0 ChrisB1 Vinzenz Mai
Grüezi mitenand ;-)
Bin nicht sehr bewandert in PHP und habe ein kleines Problem, welches sicher ganz einfach zu lösen ist.
Im folgenden Array gibt es einen Eintrag "Gruppe". Diesen einen Begriff möchte ich als einziger in meiner Forech-Schleife nicht ausgeben. Wie und wo muss ich das abfragen, damit "Gruppe" NICHT ins neue $value-Array geschrieben wird?
Herzlichen Dank für einen Tipp für einen PHP-Dau ;-)
Pierre
$fachartikel = '';
if(is_array($kategorie->fachkategorie)){
foreach ( $kategorie->fachkategorie as $value ) {
$fachartikel .= '['.l($value['safe'],'gruppe/fachartikel/'.$value['safe']).'] ';
}
}
Moin!
Bin nicht sehr bewandert in PHP und habe ein kleines Problem, welches sicher ganz einfach zu lösen ist.
Im folgenden Array gibt es einen Eintrag "Gruppe". Diesen einen Begriff möchte ich als einziger in meiner Forech-Schleife nicht ausgeben. Wie und wo muss ich das abfragen, damit "Gruppe" NICHT ins neue $value-Array geschrieben wird?
Offensichtlich willst du den String nur dann erweitern, WENN der Value NICHT "Gruppe" ist.
$fachartikel = '';
if(is_array($kategorie->fachkategorie)){
foreach ( $kategorie->fachkategorie as $value ) {
$fachartikel .= '['.l($value['safe'],'gruppe/fachartikel/'.$value['safe']).'] ';
}
}
- Sven Rautenberg
Genau. Ich möchte alle Inhalte in die Stringerweiterung ausgeben, ausser den Eintrag Gruppe. Nun weiss ich nicht wo ich die if-Abfrage reinwursteln muss. Tschuldigt die unpräzise Formulierung.
Hi,
Genau. Ich möchte alle Inhalte in die Stringerweiterung ausgeben, ausser den Eintrag Gruppe. Nun weiss ich nicht wo ich die if-Abfrage reinwursteln muss.
Und mit weiss-nicht, jammer-jammer, tut-bestimmt-weh glaubst du kommen wir hier weiter?
Du willst eine bestimmte Art der Verarbeitung der Daten nur dann vornehmen, wenn eine bestimmte Bedingung erfuellt ist.
Also kommt die Abfrage darauf auch genau vor bzw. "um" diese Verarbeitung drumherum.
MfG ChrisB
Hab weder gejammert noch tut-bestimmt-weh qequasselt...
Hatte eine falsche Ausgabe und meine Versuche hatten keine wirkung, also hab ich mal hier nachgefragt.
Solche Kommentare nerven, da verzichte ich gern auf eine Antwort!
:-(
Moin!
Hab weder gejammert noch tut-bestimmt-weh qequasselt...
Hatte eine falsche Ausgabe und meine Versuche hatten keine wirkung, also hab ich mal hier nachgefragt.
Deine Versuche hier darzustellen, damit deine bisherigen Überlegungen deutlich werden, und wir dir deinen anscheinenden Irrtum erklären könnten - auf die Idee bist du bislang nicht gekommen?
Im Moment stehst du jedenfalls eher wie ein initiativloser "Macht's mir doch bitte mal"-Anforderer da, nicht wie ein "Ich hab's versucht, aber meine Gedanken haben sich wohl verknotet"-Hilfesuchender.
- Sven Rautenberg
Ich mag diese Diskussion hier irgendwie nimmer führen. Ist immer wieder dasselbe, dass man erst mal dumm angefahren wird und als «ich probier gar nix vorher und macht mal bitte schnell fertig...»-User abgestempelt wird. Wenn man in einem Thema nicht sehr versiert ist probiert man oft im luftleeren Raum, ohne machmal zu wissen wieso oder warum. Da ist vor allem bei simplen Dingen eine Frage oft tausendmal hilfreicher, weil man nachher schlauer ist und weiss wieso was wie funzt oder eben nicht. Ich komme ja auch nicht mit einer fetten Applikatio die nicht läuft, sondern mit etwas was ein versierter PHP-User schnell und einfach, ohne grossen Aufwand beantworten kann. Und dass ich einen Fehler gemacht habe, hab ich in meinem letzten Post geschrieben, nur hab ich mich über den Kommentar genervt. Sorry. Ist ja ok, aber der Ton macht die Musik und ich hab manchmal das Gefühl ich sei einer der Wenigen, die nach gelösten Problem den Post schliessen. Aber egal...
Hi,
Ich mag diese Diskussion hier irgendwie nimmer führen. Ist immer wieder dasselbe, dass man erst mal dumm angefahren wird und als «ich probier gar nix vorher und macht mal bitte schnell fertig...»-User abgestempelt wird.
Wenn man mit dem Posten bestaetigt, die Charta gelesen zu haben, und dann aber nicht beruecksichtigt, was darin steht (bspw. was das Posten von eigenen Versuchen angeht) - dann sollte man sich vielleicht nicht so sehr ueber solche Reaktionen wundern.
Wenn man in einem Thema nicht sehr versiert ist probiert man oft im luftleeren Raum, ohne machmal zu wissen wieso oder warum.
Und das aendert sich m.E. am Besten, wenn man darauf hingewiesen wird, wo die (Denk-)Fehler im eigenen Versuch liegen.
MfG ChrisB
Nu lass mal gut sein. Dass du dich permanent im Ton vergreifst und schulmeisterlich daher kommst merkst du wohl nicht, oder interessiert dich nicht.
Auf eine solch einfache Anfrage 5 Codeversuche zu posten die nicht zum Resultat geführt haben finde ich schlicht unnötig, machen das Posting aus MEINER Sicher eher unübersichtlich. Falls es komplexer oder komplizierter ist, machts auf jeden Fall Sinn.
Nun aber nochmal zu deiner tollen Aussage man solle doch die Charta des Forums lesen, bitte ich dich dir die folgenden Punkte mal auszudrucken und an den Bildschirm zu hängen. Lies den Punkt durch, bevor du solche Antworten auf Postings schreibst
«Behandle andere Forumsteilnehmer mit mindestens derselben Höflichkeit, die Du Dir selbst gegenüber erwartest und vermeide, andere Forumsteilnehmer persönlich zu attackieren. Kritisiere die Aussage, nicht die Person! "Du liegst falsch" ist keine persönliche Attacke, "Du bist ein Idiot" ist eine. "Du kennst nicht alle Fakten" ist keine persönliche Attacke, "Du bist zu blöd" ist eine. Übertrieben rohe, geistlose oder beleidigende Postings werden gelöscht.»
Aussagen von dir, wie:
«Dafuer, dass du selber offenbar zu bloed zum aufmerksamen Lesen bist, hast du eine ziemlich grosse Klappe.»
und
«Lern Lesen, du Depp.»
sind einfach unter jeder Sau und verletzen den Anstand bei weitem mehr, als mein Fehlerchen, dass für dich schon wieder genügt um einen fragenden User dumm hinzustellen.
Pierre
Hi,
Aussagen von dir, wie:
Wenn du sogar Zeit dafuer hast, jetzt auf Teufel komm raus nach Aussagen von mir zu suchen, die du mir vorhalten kannst - dann kann dein eigentliches Problem ja nicht sonderlich wichtig sein ...
«Dafuer, dass du selber offenbar zu bloed zum aufmerksamen Lesen bist, hast du eine ziemlich grosse Klappe.»
und
«Lern Lesen, du Depp.»
sind einfach unter jeder Sau und verletzen den Anstand bei weitem mehr,
Wenn mir jemand so doof kommt, wie der Frager in dem Thread, aus dem du dir das jetzt herausgezogen hast - dann muss er auch mit meiner Reaktion darauf leben koennen.
Ich habe es satt, dass Leute, die hier hilfreiche Tipps geben, kritische Anmerkungen machen und auf Stellen hinweisen, die ein Frager bei seiner Recherche offenbar uebersehen hat, sich dafuer von solchen Flachpfeiffen dann als "Dank" staendig als "Oberchecker", "Klugscheisser" oder sonstwas bezeichnen lassen muessen.
Mein Hinweis darauf, dass der Frager die Anmerkungen zur betreffenden Eigenschaft in SELFHTML wohl uebersehen haben muss, war alles andere als unfreundlich - und trotzdem bekommt man dann so eine ueberhebliche Rueckantwort von einem Trottel, der erst nicht in der Lage war, aufmerksam nachzulesen, und dann den nochmaligen Hinweis auf die Quelle auch wieder nur mit "Super hilfreich danke...." abtun zu muessen meint.
Sorry, mein Verstaendnis fuer solche Leute ist einfach aufgebraucht.
als mein Fehlerchen, dass für dich schon wieder genügt um einen fragenden User dumm hinzustellen.
Siehste, deshalb hab ich das mit dem Jammern angemerkt - ich ahnte schon, dass du dazu noch kommen wuerdest.
MfG ChrisB
lol - aussichtslos!
Vergisses!
Hi!
das fand ich jetzt ´ne Nummer zu groß - sorry: aber es wird hier niemand gezwungen zu antworten, oder eine Hilfe zu geben.
off:PP
Hallo.
Übertrieben rohe, geistlose oder beleidigende Postings werden gelöscht.
Dann scheint sein Beitrag ja nicht in diese Kategorie zu fallen.
Aussagen von dir, wie:
«Dafuer, dass du selber offenbar zu bloed zum aufmerksamen Lesen bist, hast du eine ziemlich grosse Klappe.»und
«Lern Lesen, du Depp.»
sind einfach unter jeder Sau und verletzen den Anstand bei weitem mehr, als mein Fehlerchen, dass für dich schon wieder genügt um einen fragenden User dumm hinzustellen.
Voreingenommenheit behindert natürlich jeden noch so guten Versuch einer Hilfeleistung. Beziehe dich also besser auf Aussagen zu deinem Thema.
MfG, at
Hi,
Im folgenden Array gibt es einen Eintrag "Gruppe". Diesen einen Begriff möchte ich als einziger in meiner Forech-Schleife nicht ausgeben. Wie und wo muss ich das abfragen, damit "Gruppe" NICHT ins neue $value-Array geschrieben wird?
Wie - mit einer einfachen If-Abfrage
Wo - an der Stelle natuerlich, wo du den Wert uebernimmst.
(Von welchem neuen Array du redest, ist uebrigens unklar - schliesslich machst du in der Schleife lediglich eine Stringverkettung.)
MfG ChrisB
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:
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