Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Juni

SELFHTML Forumsarchiv
Array wert und bestimmten key durchsuchen

Informationsseite
  1. Seite (PHP) Array wert und bestimmten key durchsuchen von Emanuel, 28. 06. 2008, 17:37
nach unten

Array wert und bestimmten key durchsuchen

Die folgende Nachricht zum Thema stammt von: Emanuel, 28. 06. 2008, 17:37

Hallo Leute!

Hab ein Array, das $_POST array in welchem Formulardaten stehen.
Es gibt im Formular mehrere Auswahllisten mit den Werten 0-9.
Standardmäßig ist 0 ausgewählt, 0 darf auch öfters vorkommen - klar.
Wenn 1-9 ausgewählt wird, dann darf der Wert nur einmal vorkommen, also darf nicht zweimal 1 ausgewählt und abgeschickt werden, selbiges gilt von 2-9.
Es gibt aber im Formular auch Inputfelder, die 1-9 und andere Werte beinhalten dürfen.
Wenn ich nun mit PHP das $_POST array checke, dann muss zwischen dem Wert der Auswahllisten und den anderen Elementen unterschieden werden, damit die Überprüfung auf doppelte Werte richtig funktioniert.
Dazu habe ich zunächst die Auswahllisten mit einem spezifischen Namen versehen, uzw. enden alle Namen mit "_column".

Mein PHP Teil sieht daweil so aus:


foreach($_POST as $key => $val){
//überprüfen ob ein Wert doppelt ausgewählt wurde
  if(substr($key, -7) == "_column" && in_array($val, $_POST)){
    $errormsgs = 'Der Wert <b>'.$val.'</b> wurde mehrfach ausgew&auml;hlt!   Bitte &uuml;berpr&uuml;fe noch einmal deine Eingabe!';
    break;
  }
}


Jo und da gibts schon das Problem...


if(substr($key, -7) == "_column" && in_array($val, $_POST))

der zweite Teil (in_array) passt nicht, weil $val im ganzen $_POST array gesucht wird und nicht nur die Werte der "_column" keys... wie gebe ich jetzt an, dass nur die Werte der Keys die mit "_column" enden ohne eine weitere Schleife durchsucht werden sollen? Gibts da eine PHP Funktion die ich verwenden kann? Oder gibts prinzipiell eine einfachere Möglichkeit das zu lösen?

Danke für die Hilfe!
MfG Emanuel

nach obennach unten

Array wert und bestimmten key durchsuchen

Die folgende Nachricht zum Thema stammt von: Emanuel, 28. 06. 2008, 17:57

Nachtrag:

Ich habe es inzwischen so gelöst, die Frage ist nur ob das die einzige Möglichkeit ist oder es eine einfachere, kürzere und schnellere Variante gibt?


$errormsg = '';
foreach($_POST as $key => $val){
  if(substr($key, -7) == "_column"){
    $same_values = array_keys($_POST, $val);
    foreach($same_values as $a => $b){
      if(substr($b, -7) == "_column" && $b != $key){
        $errormsg = 'Der Wert <b>'.$val.'</b> wurde mehrfach ausgew&auml;hlt! Bitte &uuml;berpr&uuml;fe noch einmal deine Eingabe!';
        break;
      }
    }
    if($errormsg)
      break;
  }
}


MfG Emanuel

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2008 Teil von Juni

© 1998-2008 Seite Impressum, Software: Classic Forum