Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeichenkette zusammenschreiben und dann überprüfen?

Einklappen

Neue Werbung 2019

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

  • Zeichenkette zusammenschreiben und dann überprüfen?

    Hallo,

    also ich habe 2 Probleme:

    1. Ich habe Beispielsweise $a = 1 , $b = 2 , $c = 3.

    Jetzt möchte ich


    PHP-Code:
    $a 1;
    $gesamt 1;
    $b 2;
    $gesamt 1,2;
    $c 3;
    $gesamt 1,2,3
    Das heißt er soll bei $gesamt immer mit nem "," die Variable dranhängen.

    2. Jetzt möchte ich diese $gesamt nehmen und folgendes machen:

    PHP-Code:
    $gesamt 1,2,3;
    $d 2;
    $e 4
    Jetzt möchte ich überprüfen, ob $d oder $e in $gesamt mit drinnen ist. Also bei $d würde dann rauskommen "Ja", da 2 ja bereits in $gesamt drin ist und bei $e würde "Nein" rauskommen, da es ja noch nicht in $gesamt drin ist.

    Wie setze ich das am besten in php um?

  • #2
    1. Sollte mit dem Handbuch (speziell "Strings") lösbar sein.

    - a) Bei fester Variablenzahl
    PHP-Code:
    $gesamt $a "," $b "," $c
    - b) Bei variabler Variablenzahl (Array verwenden!)
    PHP-Code:
    $gesamt implode(",",$array); 
    2. Bei deiner Aufgabenstellung solltest du wirklich Arrays verwenden. Dann kannst einfach mit in_array prüfen.

    Kommentar


    • #3
      Zitat von KingCrunch
      1. Sollte mit dem Handbuch (speziell "Strings") lösbar sein.

      - a) Bei fester Variablenzahl
      PHP-Code:
      $gesamt $a "," $b "," $c
      - b) Bei variabler Variablenzahl (Array verwenden!)
      PHP-Code:
      $gesamt implode(",",$array); 
      2. Bei deiner Aufgabenstellung solltest du wirklich Arrays verwenden. Dann kannst einfach mit in_array prüfen.
      Ja, Variablenzahl ist unterschiedlich. Nur beim einfügen in $gesamt haperts jetzt noch etwas bei mir.
      Also wäre das dann:

      PHP-Code:
      $gesamt "$a";
      $gesamt .= ",$b";
      $gesamt .= ",$c"; (geht das so?)
      $gesamt implode(",",$array);

      if (
      in_array("4"$gesamt)) {
          echo 
      "4 ist drin";
      }
      else
      {
      echo 
      "4 ist nicht drin";

      Kommentar


      • #4
        Ne... Also erstmal: Beiträge bitte von Hand umbrechen. Ich bin mir grad net sicher, ob dir der Unterschied zwischen Strings
        und Arrays klar ist. Ich würde empfehlen an der Stelle nochmal das Handbuch zu konsultieren.
        Du hast auch ungünstigerweise beide Vorschläge vermischt, was so nicht gemeint war

        PHP-Code:
        $gesamt "$a";
        $gesamt .= ",$b";
        $gesamt .= ",$c";
        echo 
        $gesamt// Ausgabe "1,2,3" wenn $a, $b und $c mit 1, 2 und 3 gefüllt sind. 
        Dann funktioniert aber in_array nicht, weils kein Array ist.

        PHP-Code:
        // entweder
        $gesamt = array ($a$b$c);
        // oder
        $gesamt = array();
        $gesamt[] = $a;
        $gesamt[] = $b;
        $gesamt[] = $c
        Jetzt aber bitte nochma ein paar grundsätzliche Fragen zu deinem Aufbau: Wieso verwendest du bei einer Variablen
        Anzahl jedes mal eine zusätzliche Variable und nicht von Anfang an ein Array? Woher kommen $a, $b und $c? Ist die
        Konkatenation als String mit Komma-getrennten Werten für irgendetwas notwendig (zB Ausgabe)? Gibt es jedes mal
        nur ein Wert, den du auf Existen prüfen willst, oder sind es ebenfalls auch immer unbestimmte Anzahl verschiedener
        Werte (variable Anzahl)?

        Ich würd ansonsten mal folgenes Vorschlagen
        PHP-Code:
        // keine Variablen $xyz sondern direkt ein Array
        $array = array();
        $array[] = 1;
        $array[] = 2;
        $array[] = 3;

        $suchwert 4;
        if (
        in_array ($suchwert$array)) {
          echo 
        "$suchwert in " implode (","$array);
        } else {
          echo 
        "$suchwert nicht in " implode (","$array);

        Kommentar


        • #5
          PHP-Code:
          <?php

          $gesamt
          = array();
          $gesamt[] = "1";
          $gesamt[] = "2";
          $gesamt[] = "4";

          if (
          in_array("4"$gesamt)) {
              echo 
          "4 ist drin";
          }
          else
          {
          echo 
          "4 ist nicht drin";
          }

          ?>
          http://faq-phpfriend.de/ch/ch-arrays.html

          Kommentar


          • #6
            OK, vielen lieben Dank!

            In der von euch genannten Form funktioniert es ohne jegliche Probleme.

            Kommentar


            • #7
              Schade... Eigentlich wollte ich noch Antworten auf meine Fragen

              Kommentar

              Lädt...
              X