2016-12-07 3 views
0

i auf Stackoverflow bin neu, und ich habe ein Problem mit einem preg_matchdoppelte Eintrag auf einem preg_match php

var_dump($_POST); 
foreach($_POST as $key => $value) { 

      if (preg_match("/^.00$/",$key)){ 
       echo "$value <br>"; 
      } 
      if (preg_match("/^.q[1-9][0-9]?$|^100$/",$key)){ 
       echo "$value <br>"; 
      } 
      if (preg_match("/^.r[1-9][0-9]?$|^100$/",$key)){ 
       echo "$value <br>"; 
      } 

Und ich bekomme diese:

array(10) { 
[100]=> string(7) "qsdfsdf" 
["c1"]=> string(1) "1" 
["1q1"]=> string(10) "1question1" 
["1r1"]=> string(9) "1reponse1" 
[200]=> string(12) "dqsfqsdfdfqs" 
["c2"]=> string(1) "2" 
["2q1"]=> string(10) "2question1" 
["2r1"]=> string(9) "2reponse1" 
["2q2"]=> string(10) "2question2" 
["2r2"]=> string(9) "1reponse2" } 
qsdfsdf 
qsdfsdf 
qsdfsdf 
1question1 
1reponse1 
dqsfqsdfdfqs 
2question1 
2reponse1 
2question2 
1reponse2 

Ich verstehe nicht, warum es ein doppelter Eintrag für den ersten Eintrag des Arrays

+0

'100' passt zu jedem Ihrer RegExes ... –

+1

Genau. Sie sollten 'if' und' else if' verwenden. – Thanasis

+0

Ein dummer Fehler, danke für Ihre Hilfe – GgLaPoule

Antwort

-1

Sie sollten wenn sonst Anweisung verwenden. Es gibt einige Zeichenfolgenübereinstimmungen in jeder Zeichenfolge.