2013-07-11 62 views
-1

我想基於在循環值改變TR背景顏色,所以如果該值爲X爲下一些記錄,然後顏色應該是藍色的,如果該值更改爲別的東西那麼顏色也應該改爲黃色。更改行色值

我的代碼如下是錯誤的,這使得所有的行在繪製第一個藍色後變成黃色。

foreach ($arr as $key => $value) 
{ 
    if ($old_value == $value) 
    { 
    $colour = 'blue'; 
    } 
    else 
    { 
    $colour = 'yellow'; 
    $old_value = $value; 
    } 

} 

我需要的輸出是這樣的: enter image description here

+2

該代碼如何錯誤?它做什麼,它不應該?或者它沒有做什麼,它應該如何? – andrewsi

+0

你如何改變顏色? – Arunu

+0

添加圖片以獲得更好的解釋。 – BentCoder

回答

3

您需要根據所使用的最後一種顏色,就像

$arr = array(1,1,1,4,4,7,3); 
$old_value = 0; 
$colour = 'blue'; 
echo '<table>'; 
foreach ($arr as $key => $value) 
{ 
    if ($old_value == $value) 
    { 
     //colour stays the same 
    } 
    else 
    { 
     if($colour == 'blue') 
     { 
      $colour = 'yellow'; 
     } 
     else 
     { 
      $colour = 'blue'; 
     } 
     $old_value = $value; 
    } 
    echo '<tr style="background-color:' .$colour . '"><td>' . $value . '</td></tr>'; 
} 
echo '</table>'; 

什麼來改變顏色現在每個組相等值將具有相同的顏色,而下一組的另一顏色。 Looks like this

+0

現在所有行都顯示爲藍色。 – BentCoder

+0

我剛完成我的例子,它看起來就像我的電腦上的圖片。 – Dahaka

+0

謝謝你現在的作品。 – BentCoder

1

你可能不喜歡

$i=0; 
$old_value = ""; 

foreach ($arr as $key => $value) 
{ 
    if ($old_value != $value) 
    { 
    $old_value = $value; 
    $i++; 
    } 

    if($i % 2 == 1) 
    { 
    $colour = 'yellow';   
    } else { 
    $colour = 'blue'; 
    } 

} 
+0

這使每一行不同的顏色。如果值X出現在下兩行中,那麼接下來的兩行應該是相同的顏色。 – BentCoder

2

確保您使用的是循環右:

foreach ($arr as $key => $value) 
{ 
    if ($old_value == $value) 
    { 
    $colour = 'blue'; 
    } 
    else 
    { 
    $colour = 'yellow'; 
    $old_value = $value; 
    } 

    //now $color has the desired value 
    //so now you should echo your tr 

} 

//now $color contains just the last row 
2
$arr = ['something', 'something else', 'another something']; 
$old_value = ""; 
foreach ($arr as $key => $value){ 
    if ($old_value == $value){ 
     $colour = 'blue'; 
    } 
    else{ 
    $colour = 'yellow'; 
    $old_value = $value; 
    } 
    echo '<tr style="background-color:' .$colour . '"><td>' . $value . '</td></tr>'; 
    } 

輸出:

output screenshot

0
$i=0; 
foreach($resultex as $rowex) 
     { 
if ($old_value != $rowex) 
     { 
     $old_value = $rowex; 
     $i++; 
     } 

    if($i%2 == 1) 
       { 
      <tr style="background-color:#f3f3f3;color:#000;"> 
     } 
      else 
       { 
       <tr style="background-color:#fff;color:#000;"> 
     } 
    }