2016-02-11 37 views
0

我有了這樣的數組:呼應一定數值時出數組等於你的函數

$autos[] = array(
     "auto" => "Audi A6", 
     "Max snelheid" => "240 km/h", 
     "Verbruik" => "1 op 12"); 

$autos[] = array(
     "auto" => "Porsche 911", 
     "Max snelheid" => "290 km/h", 
     "Verbruik" => "1 op 8"); 

和下面我用Echo的這一個foreach。

foreach ($autos as $cars => $arr){ 
    echo '<tr>'; 
     foreach($arr as $test => $data){ 
      echo '<td>'.$data.'</td>'; 
    } 
    echo '</tr>'; 
} 

我怎麼能呼應的東西時,這個值是"Verbruik" => "1 op 11" 如果第2個數字是高於11我要呼應「這是正確的」。

這樣的例子是:

$autos[] = array(
    "auto" => "Fiat Panda", 
    "Max snelheid" => "140 km/h", 
    "Verbruik" => "1 op 11"); 

所以當我有上面的代碼。我怎麼回聲「這是正確的」?

+0

只是要清楚,你想只呼應的汽車,有 「Verbruik」=> 「1架運11」? –

+0

不,我想回應我的foreach,而當「verbruik」中的值爲11或更大時,我想回應另一個「That's Correct」。 – Emre

+0

如果我的回答對你有用,請檢查它是否是最好的答案。 –

回答

1

使用explode()函數將字符串「1 op 12」分解爲2個數字的數組,然後檢查第二個數字是否大於11或任何你想要的。

foreach ($autos as $cars => $arr){ 
    echo '<tr>'; 
     foreach($arr as $test => $data){    
      echo '<td>'.$data." "; 
      if($test == "Verbruik"){ 
       $temp = explode(" op ",$data); 
       if($temp[1] > 11){ 
        echo "correct "; // do whatever you want 
       } 
      } 
      echo '</td>'; 
    } 
    echo '</tr>'; 
} 
+0

這工作謝謝!但是讓我們說我有3個值超過11的數組。然後它說只是正確的。我怎麼把這個放在$ data旁邊?所以它顯示正確的數據後?在正確的​​? – Emre

+0

我編輯了我的答案,您可以移動if語句或在第二個foreach中顯示任何內容 –

+0

非常感謝! – Emre

0

試試這個:

foreach ($autos as $cars => $arr){ 
    echo '<tr>'; 
     foreach($arr as $test => $data){ 
      $numbers = explode(" op ", $data); 
      if($test == 'Verbruik'){ 

       if((int) $numbers[1] >= 11) 

        echo '<td>'.$data." , That's correct!</td>"; 
      } 

      else 
       echo '<td>'.$data.'</td>'; 
    } 
    echo '</tr>'; 
} 
+1

可能會更好地執行類似'$ a = explode(「」,$ data)''的操作。然後,最後一個數字可以用'$ a [2]'來檢索... ... – ImClarky

+0

@ImClarky是的,你說得對 – Mohammad

+0

感謝您的輸入。上面的解決方案是一個更好的解決方案,我已經使用了1。 – Emre