2017-05-29 46 views
-3

假設我有一個具有不同和重複值的數組,如 ['zaid','zaid','ali','khan','khan','zaid','jhone 」,‘jhone’]更改CLASS爲陣列中的每個索引

我想要什麼,

我想用同樣的方式顯示與同BG-COLOR每重複值。

喜歡:

<span style="background-color:#ddd">ZAID</span> 
<span style="background-color:#ddd">ZAID</span> 
<span style="background-color:#E55">ALI</span> 
<span style="background-color:#099">Khan</span> 
<span style="background-color:#099">Khan</span> 
<span style="background-color:#ddd">ZAID</span> 
<span style="background-color:#055">JHONE</span> 
<span style="background-color:#055">JHONE</span> 

我做現在這個樣子,你連擊明白我想要什麼。

$ row ['who_first_check']是一個逗號分隔的字符串。

$checkerNames = explode(",",$row['who_first_check']); 
$i    = 0; 
$a    = 'a'; 
foreach($checkerNames as $cnName){ 
    echo '<span class="userCheck" style="background:#'.$a++.$i++.'2; border:1px solid #'.$a++.$i++.'2;">'.$cnName.'</span>'; 
} 
+0

數組中項目的名稱表示顏色。 –

+0

我想分配一種顏色。對每一個重複的價值。 –

+0

爲什麼低估這個問題?如果你不明白,那麼問我,我會盡我所能解釋。 –

回答

2

你可能想使用關聯數組關聯數組。像這樣:

$names = array('zaid' => 'eee', 'khan' => 'ccc'); 
foreach($names as $key => $item){ 
    echo "<span class='element-name--$key'>$key</span>"; 
} 

現在我猜你有一個生成CSS樣式表另一個文件(或者,如果你願意,你可以做到這一點的內嵌樣式在同一頁)。在這裏你可以這樣做:

foreach($names as $key => $item){ 
    echo ".element-name--$key {background-color: #$item}"; 
} 
0

你通過你的陣列需要循環,對於每個元素,決定採取哪種顏色的使用方法:

<?php 

$items = array('zaid','zaid','ali','khan','khan','zaid','jhone','jhone'); 

foreach ($items as $item) { 
    if ($item == 'zaid') { 
     $colour = '#ddd'; 
    } 
    else if ($item == 'ali') { 
     $colour = '#E55'; 
    } 
    else if ($item == 'khan') { 
     $colour = '#099'; 
    } 
    else if ($item == 'jhone') { 
     $colour = '#055'; 
    } 
    echo `<span style="background-color:$colour">$item</span>`; 
} 

?> 

echo內使用的PHP變量允許您設置不同輸出同時停留在循環內。

請注意,以上是有點草率(因爲它可以使用switch語句),但將完成工作。

希望這會有所幫助! :)

+0

這不是一個動態解決方案。如果數組值將被改變怎麼辦? –

+0

您需要某種方法將值與所需的顏色相關聯。沒有這樣的定義,檢查每個元素是唯一的選擇。 –

+0

然後幫我解決這個問題。 –

0
<?php 
$array1 = Array('zaid','zaid','ali','khan','khan','zaid','jhone','jhone'); 
foreach($array1 as $array) 
{ 
    echo "<span class='$array'>$array</span>"; 
} 
?> 

CSS

<style> 
.zaid 
{ 
    background-color:#ddd; 
} 
.ali 
{ 
    background-color:#E55; 
} 
.khan 
{ 
background-color:#099; 
} 
.jhone 
{ 
background-color:#055; 
} 


</style> 
+0

你有錯誤...我想你的意思'<?PHP $陣列1 =陣列( '扎伊德', '扎伊德', '阿里', '汗', '汗', '扎伊德', 'jhone', 'jhone'); foreach($ array1 as $ array) { echo「 $ array」; } ?> ' –

+0

我想我也應該在循環中傳遞樣式。 –

+0

我的代碼更新了,你可以試試這個 – Arun

1

讓像下面

$arr=array("zaid"=>"#ddd","ali"=>"#E55","jhone"=>"#055","khan"=>"#bb099b"); 
//loop your repeated array 
$input=['zaid','zaid','ali','khan','khan','zaid','jhone','jhone']; 
foreach($input as $val){ 
    $colour=$arr[$val]; 
    echo "<span style='background-color:".$colour."'>".$val."</span>"; 

} 
+0

謝謝,所以我應該先爲每個索引分配一個顏色。 –

+0

是的,最好製作單獨的數組而不是分配重複值 – sumit

+0

我更新我的問題,你可以請現在看看它嗎? –