Ergebnis 1 bis 10 von 10

Thema: Array auf doppelte Einträge prüfen

  1. #1
    Samurai Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Array auf doppelte Einträge prüfen

    Hallo zusammen!

    Hab ne kleine Frage zu Arrays.
    Und zwar möcht Zahlen aus einem Form prüfen ob sie doppelt oder mehrfach eingegeben wurden und eine Fehlermeldung ausgeben wenn das der Fall ist.

    Code:
     
    <form action="index.php" method="post">
    <input type="text" name="zahl1" size="1" maxlength="2" value="<?php echo $_POST['zahl1']; ?>">
    <input type="text" name="zahl2" size="1" maxlength="2" value="<?php echo $_POST['zahl2']; ?>">
    <input type="text" name="zahl3" size="1" maxlength="2" value="<?php echo $_POST['zahl3']; ?>">
    <input type="text" name="zahl4" size="1" maxlength="2" value="<?php echo $_POST['zahl4']; ?>">
    <input type="text" name="zahl5" size="1" maxlength="2" value="<?php echo $_POST['zahl5']; ?>">
    <input type="text" name="zahl6" size="1" maxlength="2" value="<?php echo $_POST['zahl6']; ?>"><br>
    <input type="submit" name="submit" value="Auswerten">
    </form>

    Hab mir gedacht das geht am Besten mit einem Array:

    PHP-Code:
    $checkarray = array(
    'zahl1' => $_POST['zahl1'],
    'zahl2' => $_POST['zahl2'],
    'zahl3' => $_POST['zahl3'],
    'zahl4' => $_POST['zahl4'],
    'zahl5' => $_POST['zahl5']); 
    aber jetzt weiss ich nichtmehr weiter.
    array_key_exists prüft ja nicht ob da was doppelt ist... oder doch?

    Hat einer ne Idee?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in)
    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Array auf doppelte Einträge prüfen

    http://de3.php.net/manual/de/ref.array.php

    Da ist eine dabei, such! :P

  3. #3
    Samurai
    Themenstarter
    Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Array auf doppelte Einträge prüfen

    Danke erstmal FaFoo,

    Meinst Du array_unique ?

    Das is eigentlich nicht das was ich suche.
    Denn ein Array aus den alles doppelte entfernt ist bringt mir nicht wirklich was.
    Brauch ja alle Stellen.
    Kann ich damit eine Fehlermeldung ausgeben?

  4. #4
    Meister(in)
    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Array auf doppelte Einträge prüfen

    Ahhhh, sorry, nicht aufmerksam gelesen.
    Also dann würde ich das ganz spontan so lösen:
    PHP-Code:
    <php
    foreach ($checkarray as $element) {
     
    $equals 0;
     foreach (
    $checkarray as $compare) {
      if (
    $element == $compare$equals++;
     }
     if (
    $equals 1) echo "Fehler: ".$element." ist ".$equals." mal vorhanden!<br />";

    Ungetestet... aber versuchs mal.

    EDIT: Ok, passt noch nicht ganz, so bekommt man den Fehler genau so oft angezeigt, wie der Eintrag vorhanden ist der nicht "unique" ist.

    PHP-Code:
    $checkarray = array(
        
    "key0" => "value0",
        
    "key1" => "value1",
        
    "key2" => "value2",
        
    "key3" => "value3",
        
    "key4" => "value3",
        
    "key5" => "value3",
        
    "key6" => "value0"
    );
    $checked = array();
    foreach (
    $checkarray as $element) {
     
    $equals 0;
     foreach (
    $checkarray as $compare) {
      if (
    $element == $compare$equals++;
     }
     if (
    $equals && !in_array($element,$checked) ) echo "Fehler: ".$element." ist ".$equals." mal vorhanden!<br />";
     
    $checked[] = $element;

    Ausgabe:
    Fehler: value0 ist 2 mal vorhanden!
    Fehler: value3 ist 3 mal vorhanden!
    Geändert von FaFoo (30.01.2009 um 11:19 Uhr)

  5. #5
    Bandit
    Gast

    Standard AW: Array auf doppelte Einträge prüfen

    Das ganze ist schon taktisch unglücklich aufgebaut. Besser wäre in dem Fall ein Array:

    <input type="text" name="zahl[]" ....>

  6. #6
    Samurai
    Themenstarter
    Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Array auf doppelte Einträge prüfen

    Vielen Dank, FaFoo!

    Genau das was ich gebraucht hab

    PHP-Code:
      $checkarray = array(
      
    'zahl1' => $_POST['zahl1'],
      
    'zahl2' => $_POST['zahl2'],
      
    'zahl3' => $_POST['zahl3'],
      
    'zahl4' => $_POST['zahl4'],
      
    'zahl5' => $_POST['zahl5'],
      
    'zahl6' => $_POST['zahl6']);  

      if (
    $check == 'check1'){
      
    $error .='<div class="fehler">Es fehlen noch Eingaben</div>';
      }
      elseif (
    $check == 'check2'){
      
    $error .='<div class="fehler">Es sind unzulässige Zeichen enthalten</div>';
      }
      else{
     

      
    $checked = array();
      foreach (
    $checkarray as $element) {
        
    $equals 0;
      foreach (
    $checkarray as $compare) {
        if (
    $element == $compare$equals++;
        }
        if (
    $equals && !in_array($element,$checked) )
        
    $error .= '<div class="fehler">Die Zahl "'.$element.'" ist '.$equals.' mal vorhanden</div>';
        
    $checked[] = $element;
        }
     

      }
      
      
    // Fehlermeldung ausgeben
    echo $error
    Gruß, Donkey

  7. #7
    Bandit
    Gast

    Standard AW: Array auf doppelte Einträge prüfen

    Schön, dass du meinen Hinweis ignorierst und schön, dass du die Doku nicht richtig gelesen hast. Die Überprüfung und Ausgabe, welche Zahlen doppelt eingegeben wurden, ist ein Zweizeiler, wenn man array_count_values benutzt.

  8. #8
    Samurai
    Themenstarter
    Avatar von Donkey
    Registriert seit
    12.08.2008
    Ort
    München
    Alter
    35
    Beiträge
    237
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Array auf doppelte Einträge prüfen

    Hallo Bandit!

    Sorry hab Deine Nachricht wohl nich gesehen.

    Dein Vorschlag is natürlich auch eine Möglichkeit.
    Aber bei einem Zweizeiler wirds trotzdem nicht bleiben, weil dieses Array ja auch erstmal ausgelesen werden und ne verständliche Fehlermeldung draus gemacht werden muss.

    Wenn ich dem User was mit print_r hinknall können vermutlich die Wenigsten was damit anfangen

  9. #9
    Bandit
    Gast

    Standard AW: Array auf doppelte Einträge prüfen

    Zitat Zitat von Donkey Beitrag anzeigen
    Aber bei einem Zweizeiler wirds trotzdem nicht bleiben
    Stimmt, wenn du die Felder als Array übergeben lässt, ist das kein Zweizeiler, sondern ein Dreizeiler:
    PHP-Code:
    <?php
       $data 
    array_count_values($_POST['zahl']);
       
       foreach (
    $data as $key => $value)
         if (
    $value 1) echo "$key kommt $value mal vor<br>\n";
    ?>

  10. #10
    Meister(in)
    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Array auf doppelte Einträge prüfen

    Viele Wege... und Rom und so...
    Aber array_count_values ist mir auch vorher noch nicht bekannt gewesen aber gut zu wissen.
    Aber vielleicht will man die Werte ja nocht genauer untersuchen und vergleichen. Naja, muss man dann selber wissen.

    Aber dieses erstellen von Arrays durch Formularfelder ist natürlich auch manchmal ganz praktisch :>

Ähnliche Themen

  1. Formular-doppelte Einträge bei Reload
    Von Matti im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 02.04.2008, 09:12
  2. Doppelte Links!
    Von Marlo im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 29.07.2007, 13:55
  3. doppelte Kopfzeile
    Von Gast im Forum HTML & CSS Forum
    Antworten: 6
    Letzter Beitrag: 27.11.2006, 14:37
  4. Doppelte Einträge verhindern
    Von Mir nicht im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 03.11.2005, 13:39

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •