Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] foreach ergibt falsche Werte

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] foreach ergibt falsche Werte

    Moin Forum!

    Ich bin etwas am rätseln:

    Ich übergebe aus einem Formular ein Select wie folgt:
    <select name=\"contact_group_id[]\" size=\"4\" multiple>

    Die Werte werden auch übergeben und kommen an.
    $contact_group_ids = count($_REQUEST["contact_group_id"]).",";

    $contact_group_ids .= $_REQUEST["contact_group_id"][0].",";
    $contact_group_ids .= $_REQUEST["contact_group_id"][1].",";
    $contact_group_ids .= $_REQUEST["contact_group_id"][2];

    echo contact_group_ids ergibt dann 3,14,12,23.

    Nutze ich aber, was ich ja eigentlich möchte, foreach wie folgt:

    $contact_group_ids = $_REQUEST["contact_group_id"];
    foreach($contact_group_ids as $this_group_ids) {
    $this_group_ids .= $this_group_ids.",";
    }

    ergibt ein echo $this_group_ids die Ausgabe von 1414,

    setzte ich danach noch ein unset($this_group_ids) ist die Ausgabe $this_group_ids wie ich es erwartete leer.

    Wo liegt da bitte mein Fehler?

  • #2
    Willkommen im Forum.

    Na ja, $this_group_ids wird eben bei jedem Durchlauf der Schleife wieder durch das aktuelle Element ersetzt. Das ist doch eigentlich ziemlich logisch. Nutze eine zweite Variable, um das jeweils aktuelle Array-Element zu speichern.

    Möglicherweise suchst du einfach implode.

    - http://php.net/manual/en/function.implode.php

    Kommentar


    • #3
      Bitte PHP Tags nutzen!

      PHP-Code:
      $contact_group_ids $_REQUEST["contact_group_id"];
      foreach(
      $contact_group_ids as $this_group_ids) {
      $this_group_ids .= $this_group_ids.",";

      was soll denn das werden? Im Gegensatz zu deinem ersten Versuch, hast du die Variablen im zweiten Versuch durcheinandergewürfelt. $this_group_ids wird bei jedem Schleifendurchlauf neu gesetzt, da kann man nichts anhängen.

      PHP-Code:
      if(isset($_REQUEST["contact_group_id"]))
      {
          
      $contact_group_ids count($_REQUEST["contact_group_id"]).",";
          
          foreach(
      $_REQUEST["contact_group_id"] as $this_group_ids)
          {
               
      $contact_group_ids .= $this_group_ids.",";
          }

      Kommentar


      • #4
        Benenne einfach die Variable innerhalb der foreach()-Schleife um und lass sie dir am Ende ausgeben - dann sollte es klappen!
        .

        Kommentar


        • #5
          Danke Euch!

          Kommentar

          Lädt...
          X