2017-06-26 58 views
-1

我有一個關於if語句的php相關問題。我有這段代碼:PHP - 如果值等於

<?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;?> 

$ val可以返回多達10個預定義的不同值。我需要知道如何檢查一個值是否等於一個單詞,然後顯示出來。

例如:如果$ VAL ==「平達」則顯示X.之後,如果$ VAL ==「Mosterd」則顯示Y.

對於每一個選項,$ VAL返回我想表現出不同的圖片。

問候

UPDATE:

我有現在這樣的代碼:

<?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;?> 

但只有第一個結果將與X返回,看起來像在foreach並不好工作?

這是它返回: The ones with Name: in front of it are the actual results to check if it works

只是那些名稱:在它前面的是實際的結果,以檢查是否正常工作

+0

什麼是你的問題? http://stackoverflow.com/help/how-to-ask – Twinfriends

+0

我不能得到它的工作:) – n00bly

回答

0

你可以使用一個三元操作

<?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;?> 

如果你有更多的價值,你可以使用開關

<?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

謝謝,我該怎麼做所有的返回值?例如,$ val返回以下值:Pinda,Mosterd,沙拉,麪包。然後,我想要展示Pinda圖像,Mosterd圖像,沙拉圖像和麪包圖像。我需要做多個foreach,還是可以在一個? – n00bly

+0

答案已更新爲更多的價值以及如果我的回答是正確的,請將其標記爲已接受...看看這裏如何 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

+0

我根據你的回答更新了我的問題 – n00bly

1

你可以這樣做:

$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]; 

}