2017-06-26 5 views
-1
ist

Ich habe eine PHP-bezogene Frage über die if-Anweisung. Ich habe dieses Stück Code:PHP - Wenn der Wert gleich

<?php if(count($targetValue) > 0): ?> 
    <?php foreach($targetValue as $key=>$val): ?> 
     <div class="<?php echo $key ?>"> 
      <span> 
       <?php echo $val ?> 
      </span> 
     </div> 
     <br> 
    <?php endforeach; ?> 
<?php endif;?> 

Das $ val kann bis zu 10 verschiedene Werte zurückgeben, die vordefiniert sind. Ich muss wissen, wie man überprüft, ob ein Wert einem Wort entspricht, und dies dann zeigen.

Beispiel: Wenn $ val == "Pinda" dann zeigen X. Danach, wenn $ val == "Mosterd" dann Y. zeigen

Für jede Option, die $ val zurück ich einen anderen zeigen möchten Bild.

Grüße

UPDATE:

ich diesen Code jetzt haben:

<?php $targetValue = explode(",", $_product->getResource()->getAttribute('nf_allergie')->getFrontend()->getValue($_product)); ?> 

      <?php if(count($targetValue) > 1): ?> 
       <?php foreach($targetValue as $key=>$val): ?> 
        <div class="<?php echo $key ?>"> 
         <span> 
          <?php 
           switch($val){ 
            CASE "Ei": 
             echo 'X'; 
             break; 
            CASE "Gluten": 
             echo 'X'; 
             break; 
            CASE "Lupine": 
             echo 'X'; 
             break; 
            CASE "Melk, inclusief lactose": 
             echo 'X'; 
             break; 
            CASE "Mosterd": 
             echo 'X'; 
             break; 
            CASE "Noten": 
             echo 'X'; 
             break; 
            CASE "Pinda": 
             echo 'X'; 
             break; 
            CASE "Schaaldieren": 
             echo 'X'; 
             break; 
            CASE "Selderij": 
             echo 'X'; 
             break; 
            CASE "Sesamzaad": 
             echo 'X'; 
             break; 
            CASE "Soja": 
             echo 'X'; 
             break; 
            CASE "Sulfiet": 
             echo 'X'; 
             break; 
            CASE "Vis": 
             echo 'X'; 
             break; 
            CASE "Weekdieren": 
             echo 'X'; 
             break; 
            default: 
             echo "Leeg"; 
           } 
          ?> 
         </span> 
        </div> 
        <br> 
       <?php endforeach; ?> 
      <?php endif;?> 

Aber nur das erste Ergebnis, das mit dem X zurückgegeben wird, sieht aus wie die foreach nicht gut funktioniert ?

Dies ist, was es gibt: The ones with Name: in front of it are the actual results to check if it works

Die mit Name: vor ihm die tatsächlichen Ergebnisse zu überprüfen, ob es

+0

Und was ist dein Problem? http://stackoverflow.com/help/how-to-ask – Twinfriends

+0

Ich kann es nicht zur Arbeit bekommen :) – n00bly

Antwort

0

arbeitet Sie einen ternären Operator

<?php if(count($targetValue) > 0): ?> 
    <?php foreach($targetValue as $key=>$val): ?> 
     <div class="<?php echo $key ?>"> 
      <span> 
       <?php echo (($val== 'pinda') ? 'X' : $val) ;?> 
      </span> 
     </div> 
     <br> 
    <?php endforeach; ?> 
    <?php endif;?> 
verwenden könnte

Wenn Sie mehr Werte haben, können Sie einen Schalter verwenden

<?php if(count($targetValue) > 0): ?> 
    <?php foreach($targetValue as $key=>$val): ?> 
     <div class="<?php echo $key ?>"> 
      <span> 
       switch($val){ 
        CASE 'Pinda': 
        echo 'X'; 
        break; 
        CASE 'Mosterd': 
        echo 'Y'; 
        break;     
        CASE 'Salad': 
        echo 'Z'; 
        break; 
        DEFAULT: 
        echo $val; 
        break 
       } 
       <?php echo (($val== 'pinda') ? 'X' : $val) ;?> 
      </span> 
     </div> 
     <br> 
    <?php endforeach; ?> 
    <?php endif;?> 
+0

Danke, und wie kann ich das für alle wiederkehrenden Werte tun? Zum Beispiel gibt $ val die folgenden Werte zurück: Pinda, Mosterd, Salat, Brot. Dann möchte ich ein Pinda Bild, ein Mosterd Bild, ein Salat Bild und ein Brot Bild zeigen. Muss ich mehrere foreach machen oder kann dies in einem gemacht werden? – n00bly

+0

Antwort aktualisiert für mehr Werte gut, wenn meine Antwort richtig ist, bitte markieren Sie es als akzeptiert ... siehe hier http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

+0

Ich habe meine Frage basierend auf Ihrer Antwort aktualisiert – n00bly

1

Sie können etwas tun wie:

$possibleValues = array(

    1 => "Mosterd", 
    2 => "Pinda", 
    3 => "Cookie" 

); 

//add more items to the array as you please 

foreach($targetValue as $key => $val) { 

    //return the value of the value associated with the key 

    echo $possibleValues[$key]; 

}